24
2010
[Tutoriel Android]Partie 7 – Débogage
Android et le débogage
Bonjour à tous, nous allons aborder aujourd’hui un tout nouveau chapitre qui traitera du débogage d’application.
Vous avez surement dû rencontrer des erreurs durant les étapes de votre développement et vous rencontrerez encore des écrans appelés “FORCE CLOSE”.
Cet écran signifie qu’une erreur s’est produite dans votre code et que l’application ne peut continuer à fonctionner correctement.
Je vais vous montrer quelques manières d’appréhender le problème des F.C, et surtout de corriger les erreurs pour faire des applications stables (c’est la moindre des choses lorsque l’on souhaite la publier sur le market).
Essayons un morceau de code provoquant cette erreur :
public class MonActivite extends Activity {
String maVariable = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// La variable est null donc provoque une exception
maVariable.toString();
}
}
Lorsque que “force close” s’affiche, nous ne savons pas précisément ce qui a planté ce qui est dommage ! Mais, Eclipse avec le plugin ADT propose une extension nommée DDMS (Dalvik Debug Monitor), qui permet de relever les informations en temps réel des processus lancés sur notre émulateur.
Pour activer cette extension, faites comme ceci :
Si jamais vous n’avez pas l’extension DDMS, allez dans le menu Other pour l’ajouter.
Le menu est également disponible en haut a droite de votre écran dans l’IDE :
Cliquez sur DDMS et de nouvelles fenêtres vont prendre place pour le monitoring de l’application.
Le Premier carré rouge en haut à gauche est le gestionnaire de tâches, vous pouvez voir toutes les tâches lancées dans notre plateforme à l’instant X.
Le deuxième carré permet d’envoyer et de configurer en temps réel notre plateforme (vitesse du réseau, localisation, envoyer un appel, envoyer un sms, …).
Le Troisième carré rouge est le LogCat, il affiche tout ce qu’il se passe sur notre plateforme, agrandissez-le en double cliquant sur LogCat.
Vous allez surement voir différentes couleurs :
Rouge : Erreur
Verte : Information
Jaune : Warning
Voici dans les derniers événements une erreur et une grosse en plus, c’est celle de notre application !
Décortiquons-la, cherchons la ligne Caused By qui nous expliquera pourquoi l’application a crashée subitement.
Caused by : java.lang.NullPointerException at com.formation.debogage.MonActivite.onCreate(MonActivite.java:15)
Nous avons appelé une méthode d’un objet de type String contenant NULL, vous vous rappelez ?
Et bien voilà, l’exception levée est le NullPointerException à la ligne 15 du fichier MonActivite.java
Pour corriger cela, il suffirait de faire comme cela :
public class MonActivite extends Activity {
String maVariable = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// on vérifie que maVariable n'est pas null
if(maVariable != null) {
maVariable.toString();
}
}
}
Mais ce n’est pas vrai pour tout malheureusement, certaines fois il faut utiliser les bloc try{…}catch(Exception){…} qui permettront de rendre le code stable.
Pour la même erreur que tout à l’heure nous aurions pu faire :
// on vérifie que maVariable n’est pas null
try {
maVariable.toString();
} catch (NullPointerException e) {
}
Les blocs Try/Catch sont les plus souvent utilisés dans le codage car ils permettent une meilleur gestion des erreurs.
Affichons des données dans le débogueur
Android dispose d’une classe nommée Log, qui permet d’envoyer des informations au débogueur.
Pour afficher une erreur :
Log.e("Nom de l'appli","Mon erreur");
Pour afficher une information :
Log.i("Nom de l'appli","Mon information");
Dans les blocs catch vous pouvez donc mettre
try{
// Mon code à éxécuter
}
catch(Exception e)
{
Log.e("mon erreur",e.getMessages());
}
Ce qui affichera les erreurs dans le DDMS à votre sauce et sans faire planter l’application.
Faire des captures d’écrans de son application
Dans DDMS est inclue un outil permettant de faire des captures d’écran de son application directement sans utiliser la touche “Imp Ecran” de son clavier.
Cliquez sur cette icône, l’écran suivant s’affiche alors :
Vous pouvez “Sauver”,”Tourner”,”Rafraîchir”,”Copier” l’image.
C’est quand même bien pratique ce petit outil non ?
Voilà, nous sommes arrivés à la fin de ce petit tutoriel sur le débogage de vos applications Android.
Bonne chance à vous et à la prochaine

Articles relatifs
-
http://SiteWeb kikizz
-
http://SiteWeb samok
-
http://SiteWeb fred_andro
-
http://SiteWeb Droide
-
http://truth-or-dare.info AndBzh
Catégories
- Andengine (5)
- Android (20)
- Application (1)
- Articles (1)
- Non classé (2)
- Programmation (30)
Nuage
Commentaires récents
- Acesyde dans [Tutoriel Android] Partie 8 – Chargement des images et données
- Rezgui Marwen dans [Tutoriel Android] Partie 8 – Chargement des images et données
- Acesyde dans [Tutoriel Android] Partie 4 – Au menu de ce soir
- Monfront A dans [Tutoriel Android] Partie 4 – Au menu de ce soir
- Acesyde dans [Tutoriel AndEngine] Partie 5 – Arrête ton char !
Archives
- janvier 2012 (2)
- novembre 2011 (1)
- octobre 2011 (3)
- juillet 2011 (3)
- juin 2011 (1)
- décembre 2010 (4)
- octobre 2010 (3)
- septembre 2010 (5)
- juillet 2010 (8)
- avril 2010 (6)

Un article de











