860 votes

Malheureusement, MyApp s'est arrêté. Comment puis-je résoudre ce problème ?

Je suis en train de développer une application, et chaque fois que je l'exécute, j'obtiens le message suivant :

Malheureusement, MyApp s'est arrêté.

Que puis-je faire pour résoudre ce problème ?


À propos de cette question - manifestement inspirée par Qu'est-ce qu'une trace de pile, et comment puis-je l'utiliser pour déboguer les erreurs de mon application ? Il y a beaucoup de questions indiquant que l'application s'est arrêtée, sans plus de détails. Cette question a pour but d'apprendre aux programmeurs Android novices comment essayer de résoudre leurs problèmes eux-mêmes, ou de poser les bonnes questions.

29 votes

J'ai vu de nombreuses questions être fermées en tant que doublons avec cela. C'est une bonne référence pour aider les gens à poster des données pertinentes dans leurs questions. Cependant, il ne s'agit pas d'une duplication d'un problème fondamental, mais simplement d'une méthodologie permettant de déterrer le problème fondamental. Je pense qu'il serait préférable de fournir le lien vers cette question comme référence et de ne pas la fermer comme doublon.

37 votes

Je pense que la fonction de fermeture est parfaite pour cela. La plupart de ces questions montrent une faible connaissance des compétences de base en matière de débogage. Le fait de les mettre en attente leur donne l'occasion de clarifier leur problème, en utilisant la méthode indiquée dans la réponse. Mieux encore, ils pourraient être en mesure de résoudre le problème eux-mêmes. Cette discussion serait peut-être mieux adaptée à meta.stackoverflow.com.

0 votes

Cette question est trop vague. Une meilleure question serait "en utilisant [myIDE] comment puis-je déboguer une application Android qui affiche l'erreur "Malheureusement, MyApp s'est arrêtée"".

11voto

Mayank Nema Points 143

Dans la méthode showToast() ci-dessous, vous devez passer un autre paramètre pour le contexte ou le contexte de l'application, ce qui vous permet de l'essayer.

  public void showToast(String error, Context applicationContext){
        LayoutInflater inflater = getLayoutInflater();
        View view = inflater.inflate(R.layout.custom_toast, (ViewGroup)      
        findViewById(R.id.toast_root));
        TextView text = (TextView) findViewById(R.id.toast_error);
        text.setText(error);
        Toast toast = new Toast(applicationContext);
        toast.setGravity(Gravity.TOP | Gravity.FILL_HORIZONTAL, 0, 0);
        toast.setDuration(Toast.LENGTH_SHORT);
        toast.setView(view);
        toast.show();
}

8voto

DroidArc Points 1252

Utilisez le LogCat et essayez de trouver ce qui provoque le plantage de l'application.

Pour voir Logcat si vous utilisez Android Studio puis appuyez sur ALT + 6 ou

si vous utilisez Eclipse puis Fenêtre -> Perspective ouverte -> Autre - LogCat

Allez dans le LogCat, dans le menu déroulant sélectionnez erreur. Vous y trouverez toutes les informations nécessaires pour vous aider à déboguer. Si cela ne vous aide pas, publiez le LogCat en tant que modification de votre question et quelqu'un vous aidera.

7voto

felislynx.silae Points 151

Si, pour une raison ou une autre, votre application se plante sans une bonne stacktrace. Essayez de la déboguer à partir de la première ligne, et allez ligne par ligne jusqu'au crash. Vous saurez alors quelle ligne est à l'origine de votre problème. Vous pourrez alors probablement l'intégrer dans un bloc try catch et imprimer la sortie d'erreur.

6voto

Pelpotronic Points 106

Vous pouvez également obtenir ce message d'erreur tout seul, sans trace de pile ni autre message d'erreur.

Dans ce cas, vous devez vous assurer que votre manifeste Android est correctement configuré (y compris toute fusion de manifeste se produisant à partir d'une bibliothèque et toute activité qui proviendrait d'une bibliothèque), et prêter une attention particulière à la première activité affichée dans votre application dans vos fichiers de manifeste.

5voto

Kopi Bryant Points 776

Les gens font des erreurs, et il en va de même pour le codage.

Quand n'importe quel error est arrivé, vérifiez toujours avec le logcat avec le texte en couleur rouge cependant vous pouvez trouver le problème réel dans le texte de couleur bleue avec soulignement dans ces textes de couleur rouge.

Assurez-vous que si vous créez un nouveau activity , déclare toujours le activity dans le AndroidManifest fichier.

Si vous ajoutez une autorisation, déclarez-la dans la section AndroidMainifest également.

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