Suivez ces instructions pour prendre en charge ProGuard ou DexGuard avec l'agent Android. Vérifiez notre compatibilité et nos exigences Android , et si vous avez déjà installé le SDK Android de l'agent, suivez les étapes avant de passer à la dernière version avec ProGuard ou DexGuard.
Configurer ProGuard
Pour ajouter la prise en charge de ProGuard:
Ajoutez une exclusion à votre application ; par exemple :
- Pour prendre en charge l'instrumentation New Relic, ajoutez
keep class
. - Pour désactiver les avertissements liés aux problèmes non résolus, ajoutez
dont warn
. - Pour conserver les numéros de ligne pour les rapports d'incident, ajoutez
LineNumberTable
. - Pour conserver les informations stack pour les exceptions gérées, ajoutez
SourceFile
etEnclosingMethod.
- Pour prendre en charge l'instrumentation New Relic, ajoutez
Ajoutez les éléments suivants à votre fichier de configuration ProGuard (
proguard.cfg
,proguard-android.txt
,proguard-rules.pro
, etc.) :-keep class com.newrelic.** { *; }-dontwarn com.newrelic.**-keepattributes Exceptions, Signature, InnerClasses, LineNumberTable, SourceFile, EnclosingMethod#### NewRelic Gradle plugin 7.x may require the following additions:### Retain generic signatures of TypeToken and its subclasses if R8 version 3.0 full-mode is enabled.# https://r8.googlesource.com/r8/+/refs/heads/master/compatibility-faq.md#r8-full-mode-keepattributes Signature-keep class com.newrelic.com.google.gson.reflect.TypeToken { *; }-keep class * extends com.newrelic.com.google.gson.reflect.TypeToken# For using GSON @Expose annotation-keepattributes *Annotation*Nettoyez et reconstruisez votre projet.
Exécutez votre application dans un émulateur ou un appareil pour commencer à voir les données sur la pageOverview de votre application mobile.
Facultatif : utilisez la page Settings pour personnaliser votre application mobile.
Si aucune donnée n'apparaît, vérifiez votre sortie logcat
pour détecter d'éventuelles erreurs.
Ce document vous a-t-il aidé lors de votre installation ?
Prise en charge de la bibliothèque réseau
L'instrumentation New Relic se produit avant que ProGuard n'obscurcisse votre code. Pour que ces bibliothèques soient correctement instrumentées, leurs classes ne doivent pas être obscurcies par ProGuard.
Voici des exemples de règles à appliquer pour préserver ces classes. Ceci n'est pas une liste complète. Des règles différentes seront nécessaires en fonction de votre bibliothèque ou de votre version.
Library | Rules |
---|---|
Apache Http |
|
OkHttp 2 |
|
OkHttp 3 |
|
Rénovation 2 |
|
Configurer DexGuard
DexGuard utilise les mêmes options de configuration que ProGuard et peut lire tous les fichiers de configuration ProGuard préexistants. DexGuard dispose également de son propre ensemble d'options configuration supplémentaires et fournit des exemples de configuration pour de nombreux frameworks d'applications courants.
Pour ajouter la prise en charge de DexGuard:
Ajoutez DexGuard à votre application et configurez le plugin Gradle selon les instructions de DexGuard.
Créez un fichier
dexguard-project.txt
pour contenir des options de configuration DexGuard spécifiques et ajoutez :-dontnote com.newrelic.agent.android.NewRelic-dontnote com.newrelic.agent.android.harvest.crash.CrashUne fois le plugin DexGuard configuré, vérifiez les points suivants.
DexGuard 8.x : vérifiez que la configuration
buildTypes
de votre application est similaire à celle-ci :buildTypes {release {minifyEnabled falseshrinkResources falseproguardFile getDefaultDexGuardFile('dexguard-release.pro')proguardFile 'proguard-rules.pro'proguardFile 'dexguard-project.txt'}...Nettoyez et reconstruisez votre projet.
Exécutez votre application dans un émulateur ou un appareil pour commencer à voir les données sur la pageOverview de votre application mobile.
Optionnel : Utilisez la page monitoring des applications mobiles Settings pour personnaliser votre application mobile.
Si aucune donnée n'apparaît, vérifiez votre sortie logcat
pour détecter d'éventuelles erreurs.