2012-07-05 6 views
2

Je débogue une bibliothèque existante qui n'a pas été codée explicitement pour Android. Cela fonctionne, mais contient beaucoup d'appels ex.printStackTrace(). Dans Android, ils ne sont pas écrits dans le logcat par défaut.Capture de la sortie printStackTrace() sous Android

Ma question est: sans la possibilité de modifier le code, est-il possible de voir en quelque sorte les traces de la pile générées par printStackTrace() appels?

+0

Salut, Je pense que vous faites mal. ex.printStackTrace() show dans logcat. Sélectionnez votre appareil correctement pour afficher logcat ... <<<<<. –

+0

printStackTrace() sera enregistré dans logcat. – kosa

+0

Avez-vous activé le débogage sur votre appareil? – BlackHatSamurai

Répondre

1

Dans Android, elles ne sont pas écrites dans le logcat par défaut.

Bien sûr qu'ils le font. Elles sont écrites au niveau du journal WARN et la balise est généralement System.err

0

Imprimez votre trace de pile et vérifiez le message dans l'outil Logcat (en utilisant DDMS) si vous travaillez dans Eclipse.

Sinon, utilisez adb logcat dans la ligne de commande. Dans les deux cas, les résultats ne montreront aucune étiquette, vous devrez donc deviner de quelle application ils proviennent. Si vous voulez savoir quelle application les envoie, il vaut mieux utiliser les fonctions Log.

0

Je pense que vous pouvez le faire en utilisant getStackTrace.

De toute façon, ne faites pas cela, car la trace de la pile d'impression ne retournera pas quelle application cause l'erreur. Utilisez la classe Log de java.util.

0

Si vous ne pouvez pas modifier le code, vous ne pouvez rien obtenir qui n'est pas écrit dans le journal s'il n'a pas été codé à l'origine. Si vous ne voyez pas le PrintStackTrace, assurez-vous que le «mode de débogage» est activé sur votre appareil. Sinon, non, sans modifier le code, il n'y a pas grand chose à faire.

Si vous pouvez modifier le code, vous pouvez mettre la printStackTrace dans une méthode Log:

Log.e(TAG, "custom message", ex); 
Questions connexes