• /
  • EnglishEspañolFrançais日本語한국어Português
  • Se connecterDémarrer

Cette traduction automatique est fournie pour votre commodité.

En cas d'incohérence entre la version anglaise et la version traduite, la version anglaise prévaudra. Veuillez visiter cette page pour plus d'informations.

Créer un problème

Rapport de panne natif de l'agent Android

À partir de la version 6.7.0 de l'agent Android New Relic, pour aider à suivre et à diagnostiquer les pannes natives, les rapports et les analyses ont été améliorés pour inclure la violation du signal et d'autres défauts qui se produisent au niveau du code natif pendant l'exécution.

Ces améliorations incluent :

  • Rapports de plantage natifs : l'agent Android signalera les violations et autres plantages signalés par l'application pendant l'exécution, notamment :

    • Signal 4 (instruction illégale)
    • Signal 6 (Terminaison anormale)
    • Signal 7 (erreur de bus/mauvais accès mémoire)
    • Signal 8 (Exception à virgule flottante)
    • Signal 11 ( violationde segmentation/référence mémoire invalide)
  • Exceptions d'exécution natives : l'agent natif signalera toutes les exceptions C++ non gérées levées par l'application pendant l'exécution et les signalera comme des exceptions gérées. Les exceptions non gérées sont généralement fatales et feront planter l'application.

  • Conditions d'application non répondante (ANR) : l'agent natif détecte et signale les conditions d'application non répondante lorsqu'un thread d'activité ou de service a été bloqué pendant plus longtemps que le temps autorisé par Android, qui est de 5 secondes pour les activités de premier plan et de 5 à 200 secondes pour les services. Les conditions ANR seront signalées comme une exception gérée (plutôt que comme des plantages), car elles ne sont pas considérées comme des conditions fatales.

Important

Le rapport de crash natif est une fonctionnalité en cours d’incubation. monitoring native des pannes est au mieux difficile, mais l'agent fera de son mieux pour détecter et signaler ces conditions. Il se peut que certaines conditions soient manquantes ou signalées de manière incomplète, et il peut y avoir un temps de latence lors de la visualisation de ces conditions dans le dashboard de l'application.

La symbolisation des symboles natifs ne sera pas prise en charge dans les premières sorties de l'agent NDK. Lorsque les symboles natifs d'une application ne sont pas présents, la trace d'appels produite par un crash se compose uniquement de ces étiquettes obscurcies, qui ne sont pas facilement lisibles.

Vous pouvez afficher des informations détaillées sur les plantages natifs dans l'interface utilisateur Analyse des plantages de New Relic Mobile, ou recevoir des notifications de plantage par e-mail. Vous pouvez également explorer les données de crash plus en profondeur avec New Relic Insights ou les intégrer au système de tickets pour une enquête plus approfondie.

Configuration

La configuration nécessite l'ajout d'une dépendance supplémentaire dans le fichier build.gradle du ou des projets d'application qui démarrent le nouvel agent Relic :

dependencies {
implementation 'com.newrelic.agent.android:agent-ndk:1.+'
}

Les artefacts de l'agent Android peuvent être trouvés sur MavenCentral et suivent les conventions de contrôle de version sémantique. Consultez les notes de sortie de l'agent Android pour obtenir tous les détails sur la sortie et les téléchargements.

Activer les rapports de plantage natifs

Dans le code de votre application où l'agent New Relic est ajouté (généralement dans MainActivity), activez l'indicateur de fonctionnalité NativeReporting avant de démarrer l'agent :

NewRelic.enableFeature(FeatureFlag.NativeReporting);
NewRelic
.withApplicationToken("APP_TOKEN")
.start(this.getApplication());

Désactiver les rapports de plantage natifs

Si vous souhaitez utiliser un autre outil de rapport de plantage natif, désactivez le rapport de plantage natif en appelant NewRelic.disableFeature(FeatureFlag/NativeReporting) avant l'initialisation de l'agent. Par exemple:

NewRelic.disableFeature(FeatureFlag.NativeReporting);
NewRelic
.withApplicationToken("APP_TOKEN")
.start(this.getApplication());

Déboguer le rapport de crash natif

Le rapport de plantage pour Android est conçu pour fonctionner avec d'autres frameworks de rapport de plantage en enchaînant le gestionnaire d'exceptions non détectées s'il est déjà enregistré.

Tout problème survenant lors de la création du rapport apparaîtra dans logcat. Chaque fois que New Relic détecte une violation, elle est enregistrée au niveau DEBUG . Par exemple, pour une violation de segment, vous verrez le log suivant :

Signal 11 intercepted: Segmentation violation (invalid memory reference)
Invoking previous handler for signal 11

La livraison des rapports natifs est différée jusqu'à la prochaine invocation de l'application, de sorte que vous ne voyez pas de rapports de plantage dans l'utilisateur de l'interface New Relic Mobile jusqu'à ce que l'application soit lancée à nouveau. En cas de crash, l'agent natif n'aura généralement pas assez de temps ni de stabilité pour traiter le rapport. Au lieu de cela, les données du rapport sont rapidement écrites dans le stockage local, pour être traitées lors du prochain lancement de l'application.

Dépannage

Les rapports natifs sont stockés sur l'appareil sous forme de fichiers JSON dans /data/data/APP_PACKAGE_NAME/cache/newrelic/reports. Ce répertoire ne doit contenir aucun rapport après le lancement de l'application suite à un crash.

Comme pour les autres informations d’exécution de l’agent, l’agent natif écrit son état dans logcat pour se fondre dans l’état d’exécution de l’agent. La de l'agent log tag est com.newrelic.android et peut être isolée des autres logs d'exécution en exécutant adb logcat | grep "com.newrelic.android" à partir du shell.

Droits d'auteur © 2025 New Relic Inc.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.