In this post, I’ll share the top best answers to debug and solve the problem mentioned above.
How to fix unfortunately app has stopped error in Android? Answer #1:
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?“
Your application quit because an uncaught
RuntimeException was thrown.
The most common of these is the
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.
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
How to fix unfortunately app has stopped error in Android? Answer #2:
You can use
Logcat file to analyze the issue.
adb logcat > logcat.txt
logcat.txt file and search for your application name. There should be information on why it failed, the line number, Class name, etc.
How to fix unfortunately app has stopped error in Android? Answer #3:
Just check the error in log cat.
You get the log cat option from in eclipse:
Log cat contains error.
Other wise you can also check the error by executing an application in debug mode. Firstly set breakpoint after that by doing:
right click on project->debug as->Android application
How to fix unfortunately app has stopped error in Android? Answer #4:
Note: This answer is using Android Studio 2.2.2
Note 2: I am considering that your device is successfully connected.
The first thing you do when your application crashes is look into the LogCat, at the bottom of Android Studio there’s a toolbar with a list of menus:
Click on the “Android Monitor” (The one I underlined in the image above. ^)
Now, you’ll get something like this:
Verbose” to “
Error” Now it will only show you logged errors. Don’t worry about all these errors (if you got them) now.
Ok. Now, do what you did to crash your app. After your app crashes, go to your logcat. You should find a new crash log that has a lot of
Caused by: TrumpIsPresidentException for example. Go to that
Caused by: statement in your logcat.
Next to that
Caused By:, there should be the Exception that happened. In my case, it’s a
RuntimeException and under it there should be a line which contains a blue link such as:
Caused by: DOESN’T have a line with a blue text somewhere under it, then look for another
Caused by: that does.
Click on that blue link. It should take you to where the problem occured. In my case, it was due to this line:
throw new RuntimeException();
So, now I know why it’s crashing. It’s because I’m throwing the exception myself. This was an obvious error.
However, let’s say I got another error:
I checked my logcat, I clicked on the blue link it gave me, and it took me here:
So, now I want to debug. According to this StackOverflow question, a NullPointerException says that something is
So, let’s find out what is null. There’s two possibilities. Either
mTextView is null, or
myString is null. To find out, before the
mTextView.setText(mString) line, I add these two lines:
Log.d("AppDebug","mTextView is null: " + String.valueOf(mTextView == null); Log.d("AppDebug","myString is null: " + String.valueOf(myString== null);
Now, like we did previously (We changed Verose to Error), we want to change “Error” to “Debug”. Since we’re logging by debugging. Here’s all the Log methods:
Log. d means Debug e means error w means warning v means verbose i means information wtf means "What a terrible failure". This is similar to Log.e
So, since we used
Log.d, we’re checking in Debug. That’s why we changed it to debug.
Log.d has a first parameter,in our case “AppDebug”. Click on the “No Filters” drop down menu on the top-right of the logcat. Select “Edit Filter Configuration”, give a name to your filter, and in “Log Tag” put “App Debug”. Click “OK”. Now, you should see two lines in the logcat:
yourPackageNameAndApp: mTextView is null: true yourPackageNameAndApp: myString is null: false
So now we know that mTextView is null.
I observe my code, now I notice something.
private TextView mTextView declared at the top of my class. But, I’m not defining it.
Basically I forgot to do this in my onCreate():
mTextView = (TextView) findViewById(R.id.textview_id_in_xml);
So THAT’S why
mTextView is null, because I forgot to tell my app what it is. So I add that line, run my app, and now the app doesn’t crash.
How to fix unfortunately app has stopped error in Android? Answer #5:
Let me share a basic Logcat analysis for when you meet a Force Close (when the app stops working).
The basic tool from Android to collect/analyze logs is the logcat.
is the Android’s page about logcat
If you use android Studio, you can also check this.
Basically, you can MANUALLY capture logcat with the following command (or just check AndroidMonitor window in AndroidStudio):
There’s a lot of parameters you can add to the command which helps you to filter and display the message that you want… This is personal… I always use the command below to get the message timestamp:
adb logcat -v time
You can redirect the output to a file and analyze it in a Text Editor.
If you app is Crashing, you’ll get something like:
07-09 08:29:13.474 21144-21144/com.example.khan.abc D/AndroidRuntime: Shutting down VM 07-09 08:29:13.475 21144-21144/com.example.khan.abc E/AndroidRuntime: FATAL EXCEPTION: main Process: com.example.khan.abc, PID: 21144 java.lang.NullPointerException: Attempt to invoke virtual method 'void android.support.v4.app.FragmentActivity.onBackPressed()' on a null object reference at com.example.khan.abc.AudioFragment$1.onClick(AudioFragment.java:125) at android.view.View.performClick(View.java:4848) at android.view.View$PerformClick.run(View.java:20262) at android.os.Handler.handleCallback(Handler.java:815) at android.os.Handler.dispatchMessage(Handler.java:104) at android.os.Looper.loop(Looper.java:194) at android.app.ActivityThread.main(ActivityThread.java:5631) at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:959) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:754) 07-09 08:29:15.195 21144-21144/com.example.khan.abc I/Process: Sending signal. PID: 21144 SIG: 9
This part of the log shows you a lot of information:
- When the issue happened:
It is important to check when the issue happened… You may find several errors in a log… you must be sure that you are checking the proper messages 🙂
- Which app crashed:
This way, you know which app crashed (to be sure that you are checking the logs about your message)
- Which ERROR:
A NULL Pointer Exception error
- Detailed info about the error:
Attempt to invoke virtual method 'void android.support.v4.app.FragmentActivity.onBackPressed()' on a null object reference
You tried to call method
onBackPressed() from a
FragmentActivity object. However, that object was
null when you did it.
- Stack Trace: Stack Trace shows you the method invocation order… Sometimes, the error happens in the calling method (and not in the called method).at com.example.khan.abc.AudioFragment$1.onClick(AudioFragment.java:125)
Error happened in file
onClick() method at line:
125 (stacktrace shows the line that error happened)
It was called by:
Which was called by:
which was called by:
This was just an overview… Not all logs are simple but the error gives specific problems and verbose shows up all problems. It is just to share the idea and provide entry-level information to you.
I hope this post helped you in some way.
Visit Programming Articles for more.