2010-07-09 26 views
3

Quelle est la meilleure façon de déboguer une application Android? De temps à autre, l'application plante, elle dit que l'application s'est arrêtée inopinément, elle ne dit jamais pourquoi elle plante, ou où dans mon code, quelle est la meilleure façon de trouver la cause des plantages et des exceptions?Débogage Android?

Répondre

4

Il existe plusieurs façons de le faire, activer le LogCat et vous verrez là des informations détaillées sur ce qui se passe avec votre application.

ou vous mettrez en œuvre une erreur de manipulation d'envoyer les informations d'exception à un Toast

try { 
    ... 
    your code 
    ... 
} catch (IOException e) { 
    Toast.makeText(getApplicationContext(), "Exception Info " +  e.getCause(),Toast.LENGTH_LONG).show(); 
    e.printStackTrace(); 
}  

mis à jour

+4

C'est mauvais. Vous devriez vraiment laisser l'exception planter l'application si vous ne la manipulez pas de manière significative. – ognian

+1

salut ognian, je pense parfois est mieux montrer le message d'erreur aux utilisateurs que de montrer le message laide "l'application s'est arrêtée de manière inattendue" et forcer à fermer l'application entière = ( – Jorgesys

+0

Il est de mauvaise pratique d'afficher le plein e.getMessage() Dialog devrait expliquer ce qui s'est mal passé, ne pas donner une trace de pile De plus, il y a des problèmes de sécurité avec cette approche Vous ne savez pas ce qu'il y a dans ce message J'ai mes requêtes SQL et mon schéma de base de données exposés : P – CodeFusionMobile

4

Si vous utilisez ADB, lancez simplement votre application en mode débogage pour avoir la possibilité de regarder des variables/expressions à l'exécution. Vous pouvez également voir la pile dans une fenêtre Logcat de votre IDE si votre application tombe en panne.

+0

Vous pouvez trouver la fenêtre logcat dans la fenêtre> afficher la vue> autre, puis rechercher logcat. – Entrodus

0

Utilisez la classe Log de Android, et logcat, par exemple:

Log.d ("Votre nom d'application", "La valeur de x est:" + x);

Et dans la production forestière vous obtiendrez quelque chose comme:

D/Votre nom d'application (1001): La valeur de x est: 96

Vous pouvez obtenir une sortie journalisation de la ligne de commande en exécutant: "adb logcat", ou en utilisant Dalvik debug monitor (ddms dans le répertoire tools d'Android SDK)

L'utilisation de Log est supérieure à l'utilisation de Toasts puisque les toasts sont partis assez rapidement, et logcat vous montrera beaucoup d'informations lors de l'écrasement de l'application (comme nom de fichier et numéro de ligne qui causé une exception non gérée)

0

Vous pouvez également attraper les journaux par l'outil DDMS par android. Il suffit de taper DDMS dans cmd et il vous montrera une interface graphique avec les journaux en cours d'exécution et plus de choses pour le débogage.