2016-08-03 9 views
2

Jedes Mal, wenn ich diese Aktivität starte, stürzt meine App sofort ab. Die App läuft gut, wenn ich zu entfernen:Warum stürzt meine App ab, wenn ich DisplayHomeAsUpEnabled auf true festlege?

ActionBar actionBar = getActionBar(); 
    actionBar.setDisplayHomeAsUpEnabled(true); 

Hier ist meine Tätigkeit der Klassencode:

public class WebActivity extends AppCompatActivity { 
private WebView mWebView; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_web); 
    mWebView = (WebView) findViewById(R.id.activity_main_webview); 
    WebSettings webSettings = mWebView.getSettings(); 
    webSettings.setJavaScriptEnabled(true); 
    mWebView.loadUrl("http://www.example.com/"); 
    mWebView.setWebViewClient(new MyAppWebViewClient()); 
    ActionBar actionBar = getActionBar(); 
    actionBar.setDisplayHomeAsUpEnabled(true); 
} 

public boolean onOptionsItemSelected(MenuItem item){ 
    super.onBackPressed(); 
    return true; 
} 
} 

Edit: ich meine logcat geprüft und dies war die Fehlermeldung:

08-03 09:06:53.952 4650-4650/? E/AndroidRuntime: FATAL EXCEPTION: main 
    Process: ca.davesautoservice.davesautoservice, PID: 4650 
    java.lang.RuntimeException: Unable to start activity ComponentInfo{ca.davesautoservice.davesautoservice/ca.davesautoservice.davesautoservice.WebActivity}: java.lang.NullPointerException 
     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2377) 
     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2429) 
     at android.app.ActivityThread.access$800(ActivityThread.java:151) 
     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1342) 
     at android.os.Handler.dispatchMessage(Handler.java:110) 
     at android.os.Looper.loop(Looper.java:193) 
     at android.app.ActivityThread.main(ActivityThread.java:5333) 
     at java.lang.reflect.Method.invokeNative(Native Method) 
     at java.lang.reflect.Method.invoke(Method.java:515) 
     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:828) 
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:644) 
     at dalvik.system.NativeStart.main(Native Method) 
    Caused by: java.lang.NullPointerException 
     at ca.davesautoservice.davesautoservice.WebActivity.onCreate(WebActivity.java:24) 
     at android.app.Activity.performCreate(Activity.java:5343) 
     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1088) 
     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2331) 
     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2429)  
     at android.app.ActivityThread.access$800(ActivityThread.java:151)  
     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1342)  
     at android.os.Handler.dispatchMessage(Handler.java:110)  
     at android.os.Looper.loop(Looper.java:193)  
     at android.app.ActivityThread.main(ActivityThread.java:5333)  
     at java.lang.reflect.Method.invokeNative(Native Method)  
     at java.lang.reflect.Method.invoke(Method.java:515)  
     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:828)  
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:644)  
     at dalvik.system.NativeStart.main(Native Method) 

Ich persönlich sehe hier nichts besonders Interessantes. Das einzige, das ich Hinweis ist, dass, wenn sie sagt:

Caused by: java.lang.NullPointerException 
    at ca.davesautoservice.davesautoservice.WebActivity.onCreate(WebActivity.java:24) 

Sie bestätigt, dass es die Leitung der ActionBar initiiert, das das Problem ist.

+0

Verwenden Sie LogCat, um die mit Ihrem Absturz verbundene Java-Stack-Ablaufverfolgung zu untersuchen: https://stackoverflow.com/questions/23353173/unidymy-myapp-has-stopped-how-can-i-solve-this – CommonsWare

+0

Können Sie die hinzufügen Thema, das du verwendest? – ianhanniballake

Antwort

1

Try android.support.v7.app.ActionBar

und Verwendung zu importieren Der Mindest-API-Wert in Ihrer Manifestdatei liegt über 11. Da das Paket android.support.v7.app.ActionBar nur in API unterstützt wird el unter 11. Gehe zu manifest und ändere die API-Version.

+1

Danke, das hat perfekt funktioniert. Ich habe gerade den Import von 'android.app.actionbar' in' android.support.v7.app.actionbar' geändert. –

1

Da AppCompatActivity verwendet, wenn Sie ActionBar verwenden möchten, sollten Sie diese Art und Weise verwenden:

mActionBar = getSupportActionBar(); 

Stellen Sie sicher, dass Sie:

mActionBar = getSupportActionBar(); 
+0

Wenn ich 'ActionBar mActionBar = getSupportActionBar(); mActionBar.setDisplayHomeAsUpEnabled (true); ' Ich bekomme einen Fehler in der ersten Zeile" Inkompatible Typen. Erforderlich: android.app.actionbar Gefunden: android.supprt.v7.app.actionbar " –

+0

Verwenden Sie nicht' android.app .actionbar', sollte 'android.supprt.v7.app.actionbar' verwenden, verwenden Sie dieses Paket. 'import android.support.v7.app.ActionBar;' – Luoxiang

+0

Yup, ich habe es schon getan. Danke aber :) –

Verwandte Themen