2013-03-04 19 views
6

Desidero abilitare Android ActionBar, tuttavia non funziona per me.Android ActionBar NullPointerException

Ecco il mio MainActivity:

public void onCreate(Bundle savedInstanceState) { 

     this.requestWindowFeature(Window.FEATURE_NO_TITLE); 


     super.onCreate(savedInstanceState); 
     setContentView(R.layout.login); 

     ActionBar actionBar = getActionBar(); 
     actionBar.show(); 
     //more code............ 

e qui è il logcat:

03-04 16:31:09.423: E/AndroidRuntime(1441): FATAL EXCEPTION: main 
03-04 16:31:09.423: E/AndroidRuntime(1441): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.salebook/com.example.salebook.MainActivity}: java.lang.NullPointerException 
03-04 16:31:09.423: E/AndroidRuntime(1441):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2180) 
03-04 16:31:09.423: E/AndroidRuntime(1441):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230) 
03-04 16:31:09.423: E/AndroidRuntime(1441):  at android.app.ActivityThread.access$600(ActivityThread.java:141) 
03-04 16:31:09.423: E/AndroidRuntime(1441):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234) 
03-04 16:31:09.423: E/AndroidRuntime(1441):  at android.os.Handler.dispatchMessage(Handler.java:99) 
03-04 16:31:09.423: E/AndroidRuntime(1441):  at android.os.Looper.loop(Looper.java:137) 
03-04 16:31:09.423: E/AndroidRuntime(1441):  at android.app.ActivityThread.main(ActivityThread.java:5041) 
03-04 16:31:09.423: E/AndroidRuntime(1441):  at java.lang.reflect.Method.invokeNative(Native Method) 
03-04 16:31:09.423: E/AndroidRuntime(1441):  at java.lang.reflect.Method.invoke(Method.java:511) 
03-04 16:31:09.423: E/AndroidRuntime(1441):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793) 
03-04 16:31:09.423: E/AndroidRuntime(1441):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560) 
03-04 16:31:09.423: E/AndroidRuntime(1441):  at dalvik.system.NativeStart.main(Native Method) 
03-04 16:31:09.423: E/AndroidRuntime(1441): Caused by: java.lang.NullPointerException 
03-04 16:31:09.423: E/AndroidRuntime(1441):  at com.example.salebook.MainActivity.onCreate(MainActivity.java:130) 
03-04 16:31:09.423: E/AndroidRuntime(1441):  at android.app.Activity.performCreate(Activity.java:5104) 
03-04 16:31:09.423: E/AndroidRuntime(1441):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080) 
03-04 16:31:09.423: E/AndroidRuntime(1441):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144) 
03-04 16:31:09.423: E/AndroidRuntime(1441):  ... 11 more 

dove la linea 130 è anctionBar.show() e ho in res/menu/menu.xml:

<menu xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:id="@+id/itemid_0" 
     android:title="Action Item 0" 
     android:icon="@drawable/ic_launcher" 
     android:orderInCategory="0" 
     android:showAsAction="ifRoom|withText" /> 
    <item android:id="@+id/itemid_1" 
     android:title="Action Item 1" 
     android:orderInCategory="0" /> 
    <item android:id="@+id/itemid_2" 
     android:title="Action Item 2" 
     android:orderInCategory="0" /> 
    <item android:id="@+id/itemid_3" 
     android:title="Action Item 3" 
     android:orderInCategory="0" /> 
</menu> 

Non ho trovato il problema. Spero che qualcuno mi aiuti.

Grazie.

Inoltre, nello stile appThem:

<style name="AppTheme" parent="AppBaseTheme"> 
     <item name="android:windowActionBar">true</item> 
     <!-- All customizations that are NOT specific to a particular API-level can go here. --> 
    </style> 
+0

Qual è il numero di riga 130 in MainActivity.java? – Pragnani

+0

@Pragnani 'actionBar.show()' – ninetwozero

+0

null è la barra di azione? – Pragnani

risposta

7

È ActionBar restituisce null perché non si dispone di ActionBar ma si richiede utilizzando getActionbar()

Assicurarsi che hai funzione finestra per mostrare il vostro ActionBar, che è necessario per l'ActionBar da mostrare. Controlla i collegamenti sottostanti per maggiori dettagli. ... controlla questa domanda getActionBar returns null E controllare anche questo link per i più informazioni sul tuo problema http://blog.perpetumdesign.com/2011/08/strange-case-of-dr-action-and-mr-bar.html

1

si fa realmente vedere un ActionBar se si rimuove la linea actionBar.show()? In caso contrario, potrebbe essere correlato al tema, ad es. Theme.Light.NoActionBar.

+0

ancora lo stesso NullPointerException Anche se ho rimosso questa linea –

+0

Hai un tema personalizzato per la tua app/attività? – nhaarman

+0

nel manifest.xml, ho questa linea: android: theme = "@ style/AppTheme" –

6

la rimozione

android:theme="@style/AppTheme" 

in "applicazione" da AndroidManifest.xml

0

andare al AndroidManifest .xml e sostituire

android:theme="@style/AppTheme" 

da

android:theme="@android:style/Theme.Holo.Light.DarkActionBar" 
Problemi correlati