Par défaut, les bibliothèques de code natif sont supprimées dans les builds de votre application. Cette suppression consiste à supprimer la table des symboles et les informations de débogage contenues dans les bibliothèques natives utilisées par votre application. La suppression des bibliothèques de code natif permet de réduire considérablement la taille. Toutefois, il est impossible de diagnostiquer les plantages dans la Google Play Console en raison des informations manquantes (telles que les noms de classe et de fonction). Pour déboguer les plantages, vous devez inclure un fichier de symboles de débogage avec votre application dans la Play Console.
Importer un fichier de symboles
La Google Play Console signale les plantages natifs sous Android Vitals. Il suffit de quelques étapes pour générer et importer un fichier de symboles de débogage natif pour votre application. Ce fichier active des traces de pile de plantage natif décodées (contenant les noms des classes et des fonctions) dans Android Vitals pour vous aider à déboguer votre application en production. Ces étapes varient en fonction de la version du plug-in Android Gradle utilisé dans votre projet et si vous utilisez un Android App Bundle (recommandé) ou un APK.
Plug-in Android Gradle 4.1 ou version ultérieure
Si votre projet compile un Android App Bundle (AAB), vous pouvez configurer votre compilation pour qu'elle inclue automatiquement le fichier de symboles de débogage natif dans l'AAB afin qu'il soit importé dans la Play Console lorsque vous publiez votre application. Pour inclure ce fichier dans les builds de version, ajoutez ce qui suit au fichier build.gradle.kts
de votre application:
android.buildTypes.release.ndk.debugSymbolLevel = { SYMBOL_TABLE | FULL }
Sélectionnez l'un des niveaux de décodage suivants :
- Utilisez
SYMBOL_TABLE
pour obtenir les noms des fonctions dans les traces de pile décodées de la Play Console. Ce niveau prend en charge les Tombstones. - Utilisez
FULL
pour obtenir les noms des fonctions, les fichiers et les numéros de ligne dans les traces de pile décodées de la Play Console.
Si votre projet compile un APK, utilisez le paramètre android.buildTypes.release.ndk.debugSymbolLevel
présenté précédemment pour générer séparément le fichier de symboles de débogage natif. Importez manuellement le fichier de symboles de débogage natif dans la Google Play Console (le processus est semblable à l'importation d'un fichier de mappage pour désobscurcir les traces de la pile).
Dans le cadre du processus de compilation, le plug-in Android Gradle génère ce fichier à l'emplacement de projet suivant:
app/build/outputs/native-debug-symbols/<var>variant-name</var>/native-debug-symbols.zip
Plug-in Android Gradle 4.0 ou version antérieure (et autres systèmes de compilation)
Dans le cadre du processus de compilation, le plug-in Android Gradle conserve une copie des bibliothèques intactes dans un répertoire de projet. Cette structure de répertoire est semblable à ceci:
app/build/intermediates/cmake/universal/release/obj/
├── armeabi-v7a/
│ ├── libgameengine.so
│ ├── libothercode.so
│ └── libvideocodec.so
├── arm64-v8a/
│ ├── libgameengine.so
│ ├── libothercode.so
│ └── libvideocodec.so
├── x86/
│ ├── libgameengine.so
│ ├── libothercode.so
│ └── libvideocodec.so
└── x86_64/
├── libgameengine.so
├── libothercode.so
└── libvideocodec.so
Compressez le contenu de ce répertoire :
cd app/build/intermediates/cmake/universal/release/obj zip -r symbols.zip .
Importez manuellement le fichier
symbols.zip
dans la Google Play Console.