1

Ich versuche, eine einfache Navigationsschublade in meiner Android App zu implementieren, aber ich bin nicht in der Lage, einen bestimmten Fehler zu lösen.NullPointerException bei Verwendung von getSupportActionBar

Der Versuch, eine App wirft eine Nullpointer auszuführen:

Process: com.emertonalex.whiskynotes04, PID: 22225 
       java.lang.RuntimeException: Unable to start activity ComponentInfo{com.emertonalex.whiskynotes04/com.emertonalex.whiskynotes04.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.support.v7.app.ActionBar.setDisplayHomeAsUpEnabled(boolean)' on a null object reference 
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2778) 
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2856) 
        at android.app.ActivityThread.-wrap11(Unknown Source:0) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1589) 
        at android.os.Handler.dispatchMessage(Handler.java:106) 
        at android.os.Looper.loop(Looper.java:164) 
        at android.app.ActivityThread.main(ActivityThread.java:6494) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807) 
       Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.support.v7.app.ActionBar.setDisplayHomeAsUpEnabled(boolean)' on a null object reference 
        at com.emertonalex.whiskynotes04.MainActivity.setupToolbar(MainActivity.java:320) 
        at com.emertonalex.whiskynotes04.MainActivity.onCreate(MainActivity.java:97) 
        at android.app.Activity.performCreate(Activity.java:6999) 
        at android.app.Activity.performCreate(Activity.java:6990) 
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1214) 
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2731) 
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2856)  
        at android.app.ActivityThread.-wrap11(Unknown Source:0)  
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1589)  
        at android.os.Handler.dispatchMessage(Handler.java:106)  
        at android.os.Looper.loop(Looper.java:164)  
        at android.app.ActivityThread.main(ActivityThread.java:6494)  
        at java.lang.reflect.Method.invoke(Native Method)  
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)  
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)  

Soweit ich es die getSupportActionBar() Funktionsaufruf zu sehen, die Sachen bis verunstaltet. Ich habe versucht, das Gespräch mit dem „assert“ Abdeckung in setupToolbar() und es scheint, wie es dieses Stadium geht und nicht an den

getSupportActionBar().setDisplayHomeAsUpEnabled(true);

Die Teile des Codes selbst, der die getSupportActionBar() aufrufen diese sind:

In MainActivity

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.add_notes); 
    ... 
    setupToolbar(); 

    getSupportActionBar().setDisplayHomeAsUpEnabled(false); 
    getSupportActionBar().setHomeButtonEnabled(true); 
    ... 
} 

Und

void setupToolbar(){ 
    Toolbar toolbar = findViewById(R.id.toolbar); 
    setSupportActionBar(toolbar); 

    assert getSupportActionBar() != null; 
    getSupportActionBar().setDisplayHomeAsUpEnabled(true); 
} 

Ich bin neu in Android/Java Dev und wäre sehr dankbar für jede Hilfe. Auch wäre es großartig, wenn Sie mir sagen, warum dieser Fehler auftritt, damit ich es in Zukunft vermeiden kann.

Danke

Antwort

0

von Support Action Bar zu ActionBar ändern sollte das Problem beheben:

getActionBar().setDisplayHomeAsUpEnabled(true); 
+0

Dank für die Beantwortung! Leider bleibt der Fehler bestehen. Genau der gleiche Fehlertyp, der auf die nun neue getActionBar() zeigt. SetDisplayHomeAsUpEnabled (true); in setupToolbar() –

Verwandte Themen