56 votes

comment accéder aux fichiers Android /data/anr/traces.txt et /data/tombstones/tombstones

Je suis en train d'écrire une application pour rapporter les crashs et les logs correspondants. Dans mon application, j'essaie donc d'accéder à traces.txt et les pierres tombales, mais je reçois une erreur :

03-25 09:48:46.220 W/System.err(10250): java.io.FileNotFoundException: /data/tombstone/tombstone_00 (Permission denied)

Je peux accéder à traces.txt mais pas les pierres tombales.

0 votes

Avez-vous utilisé le READ_LOGS autorisation ?

40voto

Mojo Risin Points 5471

Vous pouvez utiliser l'outil adb situé dans votre_sd_root_dir/tools. Utilisez-le comme suit

./adb pull path_to_file location_to_save

3 votes

Merci Mojo mais je veux le faire à partir de mon application Android.

37 votes

Je ne parviens pas à extraire le contenu de /data/tombstones en utilisant cette méthode. adb indique que l'autorisation est refusée.

0 votes

Cela ne fonctionnerait-il pas uniquement dans l'émulateur ?

28voto

bannus Points 345

Vous pouvez saisir un rapport de bogue complet dans les Options du développeur (voir Documents sur Android ). Dans le fichier ZIP du rapport de bogue, vous trouverez tombstones y anr dossiers dans /FS/data .

Cela fonctionne avec les appareils rootés et non rootés.

4 votes

Unroot devices finnaly got /data/tombstones/ by adb bugreport . // Android 10. // BTW adb pull o adb shell aucune autorisation.

1 votes

Adb bugreport est le seul moyen qui fonctionne pour les téléphones Android 10+ non rootés. Il montrera des permissions refusées en utilisant adb pull ou cp vers le dossier /sdcard/.

26voto

yassiner89 Points 374

Si vous obtenez "permission denied", vous pouvez le faire :

adb shell "cp /data/anr/traces.txt /storage/extSdCard/" 
adb pull /storage/extSdCard/traces.txt

2 votes

J'obtiens No such file or directory lorsque j'exécute adb shell "cp /data/anr/traces.txt /storage/extSdCard/" et j'obtiens une permission refusée sur adb shell "cp /data/tombstones/traces.txt /storage/extSdCard/"

3 votes

@mundella Trouvez un répertoire intermédiaire qui vous convient -- j'utilise /sdcard/ et renommez le fichier, de sorte que mon script ressemble à ce qui suit : adb shell "cp /data/anr/traces.txt /sdcard/anr_trace.txt" ; adb pull /sdcard/anr_trace.txt

13 votes

J'obtiens une erreur : permission denied

14voto

Harshad Points 3188

Remarque : Cela ne fonctionne qu'avec les émulateurs Android et les appareils Android rootés.

Vous pouvez d'abord vérifier si le fichier est créé ou non. Vous pouvez le faire en allant dans

DDMS -> File Explorer -> data -> data -> (Your Package) -> files -> (Your File)

DDMS se trouve dans le coin supérieur droit de votre éclipse. Si le fichier n'est pas présent dans le chemin mentionné ci-dessus, il n'est pas créé correctement, mais s'il est toujours présent, modifiez le chemin de votre fichier en conséquence lorsque vous y accédez, par exemple. /data/data/(Your Package)/traces.txt

Vous pouvez également télécharger ce fichier traces.txt sur votre bureau. L'option d'extraction se trouve dans la barre supérieure sous DDMS.

12voto

box Points 1941

Ceci a fonctionné pour moi : adb pull "/data/anr/traces.txt"

0 votes

Confirmé fonctionnant sans Root sur S8+. Merci d'avance !

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X