Malheureusement MyApp a arrêté. Comment puis-je résoudre ce problème?
Je développe une application, et à chaque fois que je le lance, j'obtiens le message:
Malheureusement, MyApp a arrêté.
Que puis-je faire pour résoudre ce problème?
Sur cette question - évidemment inspiré par Qu'est ce qu'une trace de la pile, et comment puis-je l'utiliser pour déboguer mes erreurs d'application?, il y a beaucoup de questions en indiquant que leur application s'est écrasé, sans plus de détail. Cette question vise à instruire les novices Android programmeurs sur la façon d'essayer de résoudre leurs problèmes eux-mêmes, ou de poser les bonnes questions.
J'ai vu beaucoup de questions se fermé comme des doublons avec ce. C'est une bonne référence pour aider les gens d'après les données pertinentes à leurs questions. Cependant, ce n'est pas un double de toutes les racines de problème là, mais juste méthodologie pour creuser le problème à la racine. Je pense qu'il serait mieux juste pour donner le lien vers cette question comme une référence et ne pas se fermer comme en double.
Je pense que la fonction de fermeture est parfait pour cela. La plupart de ces questions montrent peu de connaissance de la base de compétences de débogage. Le mettre sur le maintien offre une chance pour eux de clarifier leur problème, à l'aide de la méthode comme indiqué dans la réponse. Mieux encore, ils pourraient être en mesure de résoudre le problème eux-mêmes. Cette discussion pourrait être mieux adapté pour meta.stackoverflow.com cependant.
Cette question est trop vague. Une meilleure question serait "à l'aide de [myIDE] comment puis-je debug' une application Android qui affiche l'erreur "Malheureusement, MyApp a interrompu"
Cette Q/r n'est pas sur le débogage. C'est à propos de guider les débutants dans Android comment traiter de l'application se bloque.
stackoverflow.com/questions/26609734/..... activer le multidex becoz erreur dans convertir apk
Je pense que la fonction de fermeture est parfait pour cela. La plupart de ces questions montrent peu de connaissance de la base de compétences de débogage. Le mettre sur le maintien offre une chance pour eux de clarifier leur problème, à l'aide de la méthode comme indiqué dans la réponse. Mieux encore, ils pourraient être en mesure de résoudre le problème eux-mêmes. Cette discussion pourrait être mieux adapté pour meta.stackoverflow.com cependant.
Cette question est trop vague. Une meilleure question serait "à l'aide de [myIDE] comment puis-je debug' une application Android qui affiche l'erreur "Malheureusement, MyApp a interrompu"
Cette Q/r n'est pas sur le débogage. C'est à propos de guider les débutants dans Android comment traiter de l'application se bloque.
stackoverflow.com/questions/26609734/..... activer le multidex becoz erreur dans convertir apk
OriginalL'auteur nhaarman | 2014-04-28
Vous devez vous connecter pour publier un commentaire.
Cette réponse décrit le processus de récupération de la trace de la pile. Déjà la trace de la pile? Lire sur les traces de pile dans "Qu'est ce qu'une trace de la pile, et comment puis-je l'utiliser pour déboguer mes erreurs d'application?"
Le Problème
Votre demande d'arrêter en raison d'une non interceptée
RuntimeException
a été levée.Le plus commun d'entre eux est le
NullPointerException
.Comment le résoudre?
À chaque fois une application Android se bloque (ou n'importe quelle application Java), un
Stack trace
est écrit dans la console (dans ce cas, logcat). Cette trace de la pile contient des informations vitales pour la résolution de votre problème.Android Studio
Dans la barre inférieure de la fenêtre, cliquez sur le
Logcat
bouton. Alternativement, vous pouvez appuyer sur alt+6. Assurez-vous que votre émulateur ou un périphérique est sélectionné dans laDevices
panneau. Ensuite, essayez de trouver la trace de la pile, qui est indiqué en rouge. Il y a peut être beaucoup de choses connecté à logcat, de sorte que vous devrez peut-être faire défiler un peu. Un moyen facile de trouver la trace de la pile est d'effacer le logcat (à l'aide de la corbeille à droite), et laissez l'appli crash à nouveau.J'ai trouvé la trace de la pile, maintenant ce qui?
Yay!!! Vous êtes à mi-chemin à la résolution de votre problème.
Vous avez seulement besoin de savoir exactement ce que fait votre plantage de l'application, par l'analyse de la trace de la pile.
Lire sur les traces de pile dans "Qu'est ce qu'une trace de la pile, et comment puis-je l'utiliser pour déboguer mes erreurs d'application?"
Je n'arrive toujours pas à résoudre mon problème!!!!
Si vous avez trouvé votre
Exception
et la ligne où il s'est produit, et ne peut toujours pas comprendre comment résoudre le problème, n'hésitez pas à poser une question sur StackOverflow.Essayer d'être aussi concis que possible: après la trace de la pile, et le pertinentes code (par exemple, quelques lignes jusqu'à la ligne qui a jeté le
Exception
).Android > Devices|Logcat
et ajouter un nouveau filtre (i.imgur.com/145dtkx.png), et le filtre pourby Log Message
ici vous pouvez mettreFATAL EXCEPTION
(i.imgur.com/HpELhaU.png) donc, dans cette Boîte, vous pouvez lire tous lesExceptions
qui sont jeter par votre application. Avec cela, vous n'avez pas besoin d'effacer logcat et ne le bloque à nouveau. Je pense que Android Studio ont cette option.Filtrage logcat dans Eclipse peut être fait en tapant dans le package java nom dans le champ nom de l'application du filtre.
Je pense que le point principal est la compréhension de la trace de retour que l'on obtient lorsque l'exception se produit. FCs sont un peu mauvais quand il n'y a pas de trace de retour ou pas utilisable, qui est l'endroit où il obtient poilu. mais je pense que cette explication est une première belle intro dans la recherche/identification de ces bugs.
Les choses sont faciles lors de votre logcat a quelques traces d'erreur, mais dans ce cas logcat n'a rien? stackoverflow.com/questions/32455645/...
Le problème est que la ligne ne contient pas l'erreur qui est écrit et souligné par la trace de la pile.
OriginalL'auteur
Vous pouvez utiliser Google ADB outil pour obtenir
Logcat file
pour analyser le problème.ouvrir
logcat.txt
fichier et rechercher le nom de l'application. Il devrait y avoir des informations sur les raisons de son échec, le numéro de ligne ,le nom de la Classe etc.Je ne vois pas pourquoi mon application a été s'écraser dans l'android studio logcat, il n'y avait pas d'erreurs. Cette réponse m'a donné ce dont j'avais besoin. Plus tard, cependant, j'ai réalisé que j'avais un peu de filtre dans le studio logcat qui a été m'empêchant de voir l'erreur. Je suis revenu à "Montrer seulement l'application sélectionnée" et j'étais de retour et en cours d'exécution.
vous devez ajouter
-d
, sinon vous nef de ctrl-C pour quitter le logcat. Je neadb logcat -v time -d > filename.txt
OriginalL'auteur Vlad Bezden
D'abord, vous vérifiez que votre application a planté (
Unfortunately, MyApp has stopped.
). Pour cela, vous pouvez utiliserLog.e("TAG","Message");
, à l'aide de cette ligne, vous pouvez vous voir app journal dans le logcat.Après que vous trouvez que votre application a cessé son très facile à résoudre, à vos côtés.
OriginalL'auteur Hiren Vaghela
Juste vérifier l'erreur dans le journal d'un chat.
Vous obtenez le journal de chat option de sous eclipse:
Journal de chat contient des erreurs.
Autrement, vous pouvez également vérifier l'erreur par l'exécution d'une application en mode debug.
Tout d'abord définir un point d'arrêt après qu'en faisant:
OriginalL'auteur Rahil Ali
Remarque: Cette réponse, c'est à l'aide de Android Studio 2.2.2
Note 2: je suis en considérant que votre appareil est correctement connecté.
La première chose à faire lorsque votre application se bloque est de regarder dans le LogCat, au bas de Android Studio il y a une barre d'outils avec une liste de menus:
Cliquez sur "Android Monitor" (celui que j'ai souligné dans l'image ci-dessus. ^)
Maintenant, vous obtiendrez quelque chose comme ceci:
Changement "
Verbose
" à "Error
" Maintenant, il n'affiche que les erreurs consignées. Ne vous inquiétez pas à propos de toutes ces erreurs (si vous les avez).Ok. Maintenant, faites ce que vous avez fait pour le plantage de votre application. Une fois que votre application se bloque, allez à votre logcat. Vous devriez trouver un nouveau crash qui a beaucoup de
at:x.x.x
: etCaused by: TrumpIsPresidentException
par exemple. Aller à cetteCaused by:
déclaration dans votre logcat.À côté de que
Caused By:
, il devrait être l'Exception qui s'est passé. Dans mon cas, c'est unRuntimeException
et sous il devrait y avoir une ligne qui contient un lien en bleu tels que:Si
Caused by:
NE dispose PAS d'une ligne avec un texte de couleur bleu quelque part en elle, alors chercher un autreCaused by:
qui ne.Cliquez sur ce lien en bleu. Il devrait vous prendre à l'endroit où le problème s'est produit. Dans mon cas, c'était grâce à cette ligne:
Alors, maintenant, je sais pourquoi ils s'écraser. C'est parce que je suis de jeter l'exception de moi-même. Ce fut une erreur évidente.
Cependant, disons que j'ai une autre erreur:
J'ai vérifié mon logcat, j'ai cliqué sur le lien en bleu il m'a donné, et il m'a fallu ici:
Donc, maintenant, je veux de débogage. Selon cette question StackOverflow, un NullPointerException dit que quelque chose est
null
.Donc, nous allons découvrir ce qui est null. Il y a deux possibilités. Soit
mTextView
est null, oumyString
est null. Pour le savoir, avant de lemTextView.setText(mString)
ligne, j'ajoute ces deux lignes:Maintenant, comme nous l'avons fait précédemment (Nous avons changé Verose à l'Erreur), nous voulons le changement "Erreur" de "Debug". Puisque nous sommes à l'exploitation forestière de débogage. Voici le Journal de toutes les méthodes:
Donc, puisque nous avons utilisé
Log.d
, nous vérifions les en Debug. C'est pourquoi nous l'avons changé de débogage.Avis
Log.d
a un premier paramètre,dans notre cas "AppDebug". Cliquez sur le "Pas de filtre" menu déroulant en haut à droite de la logcat. Sélectionnez "Modifier la Configuration du Filtre", donnez un nom à votre filtre, et dans le "Journal de la Balise" mettre "en Application de Débogage". Cliquez sur "OK". Maintenant, vous devriez voir deux lignes dans le logcat:Alors maintenant, nous savons que mTextView est null.
J'observe mon code, j'ai remarqué quelque chose.
J'ai
private TextView mTextView
déclarée en haut de ma classe. Mais, je ne suis pas la définir.Fondamentalement, j'ai oublié de le faire dans mon onCreate():
C'EST pourquoi
mTextView
est nulle, parce que j'ai oublié de dire mon application est-ce que c'est. J'ai donc ajouter cette ligne, exécuter mon application, et maintenant l'appli ne plante pas.TrumpIsPresidentException
🙂 ?Quand un mur est construit
Ceci est bon à savoir, mais en utilisant des images de la Trace de la Pile diminue son utilité - les images ne peuvent pas être recherchés, ne peuvent pas être copiés et collés, ne peuvent pas être ramassés par les lecteurs d'écran, et sont plus difficiles à lire. (Je n'ai pas downvote, par ailleurs, souligné).
Je ne le dis pas à fournir des images tho.
OriginalL'auteur Ab_
Ce popup affiche uniquement lorsque vous obtenez une erreur fatale dans votre code, ce qui arrête l'exécution de l'application. Il pourrait être n'importe exception
NullPointerException
,OutOfMemoryException
etc.Meilleure façon de le vérifier est par le biais de Logcat si vous avez encore le développement de l'application dans Android studio qui est rapide à lire la trace de la pile et vérifier la cause de l'app.
Si votre application est déjà en direct, alors vous ne pouvez pas utiliser logcat. Donc, pour que vous puissiez mettre en œuvre
Crashlytics
pour vous fournir des rapports de bogue de toute exception qui se produit.OriginalL'auteur Ani
Vérifier votre
Logcat
message et de voir votreManifest
fichier. Il devrait y avoir quelque chose qui manque, comme la définition de laActivity,
autorisation de l'Utilisateur", etc.OriginalL'auteur Manoj ahirwar
Vous pouvez utiliser un de ces outils:
Je suggère l'utilisation de Android Debug Monitor, il est bon. Parce que l'éclipse se bloque lorsqu'un trop grand nombre de journaux sont là, et par adb logcat filtre et tout difficile.
OriginalL'auteur ShivBuyya
Vous avez pour vérifier la
Stack trace
Comment faire?
sur Votre IDE Vérifier le formulaire windows LOGCAT
Si vous ne pouvez pas voir le logcat windows aller dans cette voie et ouvrir
si vous utilisez Google-Api aller sur ce chemin
adb logcat > logcat.txt
OriginalL'auteur alireza amini
Permettez-moi de partager une base Logcat analyse pour vous quand vous rencontrez une Force de fermeture (lors de l'application des arrêts de travail).
DOCS
Outil de base à partir de Android à collecter, analyser des logs est le logcat.
ICI est le Android page sur logcat
Si vous utilisez android Studio, vous pouvez également consulter ce LIEN.
Capture
Fondamentalement, vous pouvez MANUELLEMENT la capture logcat avec la commande suivante (ou simplement vérifier AndroidMonitor fenêtre dans AndroidStudio):
Il y a beaucoup de paramètres que vous pouvez ajouter à la commande qui permet de filtrer et d'afficher le message que vous voulez... C'est personnel... j'ai toujours utiliser la commande ci-dessous pour obtenir le message d'horodatage:
Vous pouvez rediriger la sortie vers un fichier et de les analyser dans un Éditeur de Texte.
L'analyse
Si votre application est en panne, vous obtiendrez quelque chose comme:
Cette partie du journal vous montre beaucoup de renseignements:
07-09 08:29:13.475
Il est important de bien vérifier si le problème est arrivé... Vous pouvez trouver plusieurs erreurs dans un journal..., vous devez être sûr que vous êtes la vérification de la bonne messages 🙂
com.example.khan.abc
De cette façon, vous savez que l'application qui a planté (pour être sûr que vous vérifiez les journaux au sujet de votre message)
java.lang.NullPointerException
Une Exception de Pointeur NULL erreur
Attempt to invoke virtual method 'void android.support.v4.app.FragmentActivity.onBackPressed()' on a null object reference
Vous essayé d'appeler la méthode
onBackPressed()
à partir d'unFragmentActivity
objet. Cependant, cet objet a éténull
quand vous l'avez fait.Stack Trace: la Trace de la Pile vous montre l'invocation de la méthode de commande... Parfois, l'erreur se produit dans l'appel de la méthode (et pas dans la méthode appelée).
au com.exemple.khan.abc.AudioFragment$1.onClick(AudioFragment.java:125)
Erreur s'est produite dans le fichier
com.example.khan.abc.AudioFragment.java
, à l'intérieur deonClick()
méthode à la ligne:125
(stacktrace montre la ligne d'erreur qui s'est passé)Il a été appelé par:
Qui a été appelé par:
qui a été appelé par:
etc....
Aperçu
C'était juste un aperçu... Pas tous les journaux sont simples etc... C'est juste pour partager l'idée et de fournir un niveau d'entrée de l'information pour vous...
J'espère que je pourrais vous aider d'une certaine manière...
Ce qui concerne
OriginalL'auteur W0rmH0le
En dessous de showToast() la méthode que vous avez à passer à un autre paramètre pour le contexte ou le contexte de l'application en faisant de sorte que vous pouvez l'essayer.
OriginalL'auteur Mayank Nema
Utiliser le LogCat et essayer de trouver ce qui est à l'origine de l'application crash.
À voir Logcat si vous utilisez Android Studio puis Appuyez sur ALT + 6
ou
si vous utilisez Eclipse alors
Fenêtre -> Ouvrir la Perspective -> d'Autres - LogCat
Aller à la LogCat, à partir du menu déroulant, sélectionnez d'erreur. Cela va contenir toutes les informations nécessaires pour vous aider à déboguer. Si cela ne fonctionne pas, post le LogCat comme une modification à votre question et que quelqu'un va vous aider.
OriginalL'auteur Biswajit Karmakar
Si votre application pour une raison quelconque se bloque sans une bonne stacktrace. Essayez de déboguer partir de la première ligne, et aller ligne par ligne jusqu'à ce crash. Ensuite, vous aurez la réponse, la ligne qui est à l'origine de vos ennuis. Proably vous pouvez ensuite wrapp en bloc try catch et imprimer sortie d'erreur.
OriginalL'auteur felislynx.silae
Vous pouvez également recevoir ce message d'erreur sur sa propre, sans aucune trace de pile ou tout autre message d'erreur.
Dans ce cas, vous devez vous assurer que votre manifeste Android est configuré correctement (y compris manifeste la fusion de passe à partir d'une bibliothèque et de toute activité qui serait venu à partir d'une bibliothèque), et accorder une attention particulière à la première activité affiché dans votre application, vos fichiers manifest.
OriginalL'auteur Pelpotronic
Crash pendant le développement
Essayer logview-0.20 pour obtenir les fichiers journaux et les analyser au cours du développement.
Assurez-vous de marquer
./logview
et./lib/logview.jar
comme exécutable lors de l'exécution sous Linux.Si vous ne l'aimez pas, il y a beaucoup d'alternatives bureau du journal de téléspectateurs pour Android.
Crash dans la nature
Intégrer en temps réel des rapports d'incidents tels que l'outil de Firebase Crashlytics afin d'obtenir stacktraces des exceptions non gérées qui a eu lieu sur les utilisateurs des appareils.
Lire Comment publier un Buggy Application (Et de Vivre pour Raconter l'histoire) pour en savoir plus sur la gestion des bugs dans le domaine.
OriginalL'auteur naXa
Gens font des erreurs, et donc de codage.
Quand jamais tout
error
qui s'est passé, toujours vérifier avec le logcat avec le texte en couleur rouge cependant u peut trouver les réel problème dans la couleur bleu du texte à souligner dans ceux de couleur rouge de texte.Assurez-vous que si u créer un nouveau
activity
, toujours déclarer laactivity
dans leAndroidManifest
fichier.Si l'ajout de l'Autorisation, de le déclarer dans le
AndroidMainifest
fichier.OriginalL'auteur Kopi Bryant
Logcat - À vérifier les journaux de la phase de développement d'Android Studio
D'abord effacer le Logcat et laissez l'appli crash à nouveau de sorte que vous pouvez obtenir seulement s'est écrasé le détail du journal. Vous avez pour vérifier la trace de la Pile
Commune erreur lors de l'application crash comme:
Pour résoudre app crash d'erreur:
OriginalL'auteur ashish