Programming
java android debugging kotlin
Updated Sat, 23 Jul 2022 17:45:40 GMT

Unfortunately MyApp has stopped. How can I solve this?


I am developing an application, and everytime I run it, I get the message:

Unfortunately, MyApp has stopped.

What can I do to solve this?


About this question - obviously inspired by What is a stack trace, and how can I use it to debug my application errors?, there are lots of questions stating that their application has crashed, without any further detail. This question aims to instruct novice Android programmers on how to try and fix their problems themselves, or ask the right questions.




Solution

This answer describes the process of retrieving the stack trace. Already have the stack trace? Read up on stack traces in "What is a stack trace, and how can I use it to debug my application errors?"

The Problem

Your application quit because an uncaught RuntimeException was thrown.
The most common of these is the NullPointerException.

How to solve it?

Every time an Android application crashes (or any Java application for that matter), a Stack trace is written to the console (in this case, logcat). This stack trace contains vital information for solving your problem.

Android Studio

Finding the stack trace in Android Studio

In the bottom bar of the window, click on the Logcat button. Alternatively, you can press alt+6. Make sure your emulator or device is selected in the Devices panel. Next, try to find the stack trace, which is shown in red. There may be a lot of stuff logged into logcat, so you may need to scroll a bit. An easy way to find the stack trace is to clear the logcat (using the recycle bin on the right), and let the app crash again.

I have found the stack trace, now what?

Yay! You're halfway to solving your problem.
You only need to find out what exactly made your application crash, by analyzing the stack trace.

Read up on stack traces in "What is a stack trace, and how can I use it to debug my application errors?"

I still can't solve my problem!

If you've found your Exception and the line where it occurred, and still cannot figure out how to fix it, don't hesitate to ask a question on StackOverflow.

Try to be as concise as possible: post the stack trace, and the relevant code (e.g. a few lines up to the line which threw the Exception).





Comments (5)

  • +0 – I know this post is old: but if you use IntelliJ IDEA you can go inside Android > Devices|Logcat and add a new filter (i.imgur.com/145dtkx.png), and filter it for by Log Message here you can put FATAL EXCEPTION (i.imgur.com/HpELhaU.png) so in this Box you can read all Exceptions which are throw by your application. With this you don't need to clear logcat and do the crash again. I think Android Studio have this option too. — Jun 14, 2014 at 14:49  
  • +1 – Filtering logcat in Eclipse can be done by typing in the java package name in the application name field of the filter. — Mar 21, 2015 at 12:38  
  • +0 – I think the main point is understanding the trace back one gets when the exception happens. FCs are a bit bad when there is no trace back or not a usable one, which is where it gets hairy. but I think this explanation is a nice first intro in finding/identifying such bugs. — Aug 19, 2015 at 14:43  
  • +4 – Things are easy when your logcat has some trace of error, but what in case logcat has nothing? stackoverflow.com/questions/32455645/… — Sep 08, 2015 at 10:50  
  • +4 – The problem is the line does not contain the error which is written and pointed by the stack trace. — Mar 10, 2017 at 13:22  


Linked Articles

Local articles referenced by this article: