[FIX] AndroidRuntime: FATAL EXCEPTION: main - java.lang.RuntimeException NullPointerException

AndroidRuntime: FATAL EXCEPTION: main - java.lang.RuntimeException NullPointerException

RuntimeException exceptions in Java are the ones that would occur while running your Android Application on the device or Emulator. The of the most common such exception is NullPointerException.

NullPointerException occurs when you call a function on an Object that is null, so just make sure of what line number that error occurred and see what object has a function called on it and see how it can be null. Let's see an example,

10    protected void onCreate(Bundle savedInstanceState) {
12       Button myButton = findViewById(R.id.button2);
13       myButton.setOnClickListener(new View.OnClickListener() {
14        @Override
15        public void onClick(View v) {
16            System.out.println("Button Clicked!");
17          }
18       });
20       setContentView(R.layout.activity_main);
21        super.onCreate(savedInstanceState);
2021-04-23 23:53:40.123 7489-7489/com.example.myapplication 
E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.example.myapplication, PID: 7489
    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.myapplication/com.example.myapplication.MainActivity}: 

java.lang.NullPointerException: Attempt to invoke virtual method 'void 
android.view.View.setOnClickListener(android.view.View$OnClickListener)' on a null object reference
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3449)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3601)
        at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:85)
        at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2066)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loop(Looper.java:223)
        at android.app.ActivityThread.main(ActivityThread.java:7656)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
     Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.view.View.setOnClickListener(android.view.View$OnClickListener)' on a null object reference
        at com.example.myapplication.MainActivity.onCreate(MainActivity.java:13)

Here the error occurred at line number 13 of MainActivity.java so the object myButton and that's because the line number 20 - setContentView(R.layout.activity_main); needs to be set before line number 13 or else we will not get the View Object that has the button!

Have Questions? Post them here!
Try Out Code2care Dev Tools:


Android Java Linux Microsoft Google Python macOS Notepad++ Microsoft Teams CSS PHP SharePoint Html Linux C Programs Bootstrap jQuery Sublime Android Studio Facebook Eclipse WhatsApp News MySQL Json HowTos JavaScript FTP S3


Code2care is an initiative to publish and share varied knowledge in programming and technical areas gathered during day-to-day learnings and development activities.

Students and Software Developers can leverage this portal to find solutions to their various queries without re-inventing the wheel by referring to our easy to understand posts. Technical posts might include Learnings, Tutorials, Trouble-Shooting steps, Video Tutorials, Code Snippets, How Tos, Blogs, Articles, etc.
🎉 We are celebrating the 10th years of Code2care! Thank you for all your support! We hope we made a difference.
We strong support Gender Equality & Diversity.

We stand in solidarity with Ukraine - Make a donation to UNHCR - https://donate.unhcr.org/in/en-in/ukraine-emergency