6

Ich bekomme diesen Fehler zur Laufzeit.Nullzeiger Ausnahme bei ActionBar

java.lang.RuntimeException: Kann Aktivität ComponentInfo android.util.AndroidRuntimeException starten:

01-22 04:55:59.728: E/AndroidRuntime(2443): FATAL EXCEPTION: main 
01-22 04:55:59.728: E/AndroidRuntime(2443): Process: com.qrme.quranmadeeasy, PID: 2443 
01-22 04:55:59.728: E/AndroidRuntime(2443): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.qrme.quranmadeeasy/com.qrme.quranmadeeasy.ChapterActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.app.ActionBar.setBackgroundDrawable(android.graphics.drawable.Drawable)' on a null object reference 
01-22 04:55:59.728: E/AndroidRuntime(2443):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2298) 
01-22 04:55:59.728: E/AndroidRuntime(2443):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360) 
01-22 04:55:59.728: E/AndroidRuntime(2443):  at android.app.ActivityThread.access$800(ActivityThread.java:144) 
01-22 04:55:59.728: E/AndroidRuntime(2443):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1278) 
01-22 04:55:59.728: E/AndroidRuntime(2443):  at android.os.Handler.dispatchMessage(Handler.java:102) 
01-22 04:55:59.728: E/AndroidRuntime(2443):  at android.os.Looper.loop(Looper.java:135) 
01-22 04:55:59.728: E/AndroidRuntime(2443):  at android.app.ActivityThread.main(ActivityThread.java:5221) 
01-22 04:55:59.728: E/AndroidRuntime(2443):  at java.lang.reflect.Method.invoke(Native Method) 
01-22 04:55:59.728: E/AndroidRuntime(2443):  at java.lang.reflect.Method.invoke(Method.java:372) 
01-22 04:55:59.728: E/AndroidRuntime(2443):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899) 
01-22 04:55:59.728: E/AndroidRuntime(2443):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694) 
01-22 04:55:59.728: E/AndroidRuntime(2443): Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.app.ActionBar.setBackgroundDrawable(android.graphics.drawable.Drawable)' on a null object reference 
01-22 04:55:59.728: E/AndroidRuntime(2443):  at com.qrme.quranmadeeasy.ChapterActivity.ActionBar(ChapterActivity.java:212) 
01-22 04:55:59.728: E/AndroidRuntime(2443):  at com.qrme.quranmadeeasy.ChapterActivity.initialize(ChapterActivity.java:112) 
01-22 04:55:59.728: E/AndroidRuntime(2443):  at com.qrme.quranmadeeasy.ChapterActivity.onCreate(ChapterActivity.java:68) 
01-22 04:55:59.728: E/AndroidRuntime(2443):  at android.app.Activity.performCreate(Activity.java:5933) 
01-22 04:55:59.728: E/AndroidRuntime(2443):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1105) 
01-22 04:55:59.728: E/AndroidRuntime(2443):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2251) 
01-22 04:55:59.728: E/AndroidRuntime(2443):  ... 10 more 
: requestFeature() muss vor Inhalt

Stacktrace Zugabe aufgerufen werden

Bearbeitet:

ChapterActivity.java:

import android.support.v7.app.ActionBarActivity; 

public class ChapterActivity extends ActionBarActivity implements OnItemClickListener { 

@Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
    // requestWindowFeature(Window.FEATURE_ACTION_BAR); 
     setContentView(R.layout.activity_chapter); 

     initialize(); --->68th line 
} 
private void initialize() { 

    listChapter.setDivider(new ColorDrawable(Color 
       .parseColor(separator_grey))); 
     listChapter.setDividerHeight(2); 
    ............ 

    ActionBar(); -->112th line 
    } 

public void ActionBar() { 
     ActionBar actionBar = getActionBar(); 
     actionBar.setBackgroundDrawable(new ColorDrawable(Color --->212th line 
       .parseColor(white))); 
     actionBar.setDisplayShowHomeEnabled(false); 
     actionBar.setDisplayShowTitleEnabled(false); 
     LayoutInflater mInflater = LayoutInflater.from(this); 

     ......... 
     actionBar.setCustomView(mCustomView); 
     actionBar.setDisplayShowCustomEnabled(true); 
    } 
} 

styles.xml:

<resources> 

    <style name="AppBaseTheme" parent="@style/Theme.AppCompat"></style> 

    <!-- Application theme. --> 
    <style name="AppTheme" parent="AppBaseTheme"> 
     <!-- All customizations that are NOT specific to a particular API-level can go here. --> 
    </style> 
</resources> 

Manifest:

<application 
     android:name="com.qrme.quranmadeeasy.Application" 
     android:allowBackup="true" 
     android:icon="@drawable/ic_launcher" 
     android:label="@string/app_name" 
     android:theme="@style/AppTheme" > 
     <activity 
      android:name=".MainActivity" 
      android:label="@string/app_name" 
      android:screenOrientation="portrait"    
       > 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
    ........ 
    <application> 

ich nicht wusste, wie this.Anyone zu lösen Hilf mir dabei. Danke.

+0

Was min API möchten Sie unterstützen? – Shvet

Antwort

9

die Zeile entfernen

requestWindowFeature(Window.FEATURE_ACTION_BAR); 

Es ist nicht notwendig, wenn Theme.AppCompat mit (die ihre eigene Aktionsleiste hinzufügt). Stellen Sie außerdem sicher, dass Ihre Aktivität ActionBarActivity (wie von Theme.AppCompat erforderlich) statt Activity verlängert wird. Wenn Sie ActionBarActivity verwenden, müssen Sie auch getSupportActionBar() anstatt getActionBar() verwenden.

+0

Verpasst, dass Sie 'getActionBar()' verwendet haben - Sie müssen verwenden 'getSupportActionBar()' – ianhanniballake

+0

'android.support.v7.app.ActionBar actionBar = getSupportActionBar();' Ich änderte diese Zeile wie this.soled mein Problem. Vielen Dank. Akzeptieren Sie Ihre Antwort in 2 min. –

0

Line 212

Falsch:ColorDrawable(Color.parseColor(white));

Richtig:ColorDrawable(Color.parseColor("#FFFFFF"));

+0

Ich habe das geändert. Jetzt bekomme ich auch den gleichen Logcat –

Verwandte Themen