2014-12-26 5 views
1

Простой, я объявляю ActionBar, вызываю hide(), и я получаю исключение nullpointer. Это распространенная проблема, поэтому я хочу убедиться, что я упоминаю, что я пробовал.ActionBar возвращает NullPointerException

-Удача AppTheme не объявляет Theme.WithoutActionBar.

-Extending ActionBarActivity вместо Activity с помощью `import android.support.v7.app.ActionBarActivity;

-Изготовление уверен, я использую мин SDK, как> 11

EDIT: Весь этот бардак с ActionBar возвращения нуль началось, когда я включил проект к Android Studio

Вот мой код внутри oncreate(), где я возился с панелью действий.

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    getWindow().requestFeature(Window.FEATURE_ACTION_BAR); 
    super.onCreate(savedInstanceState); 

    setContentView(R.layout.activity_login); 
    ActionBar bar = getActionBar(); 
    bar.hide(); 

И вот моя LogCat ошибка

Process: com.example.rafa.ideas, PID: 19806 
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.rafa.ideas/com.example.rafa.ideas.LoginActivity}: java.lang.NullPointerException 
     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2413) 
     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2471) 
     at android.app.ActivityThread.access$900(ActivityThread.java:175) 
     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1308) 
     at android.os.Handler.dispatchMessage(Handler.java:102) 
     at android.os.Looper.loop(Looper.java:146) 
     at android.app.ActivityThread.main(ActivityThread.java:5602) 
     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:1283) 
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1099) 
     at dalvik.system.NativeStart.main(Native Method) 
    Caused by: java.lang.NullPointerException 
     at com.example.rafa.ideas.LoginActivity.onCreate(LoginActivity.java:33) 
     at android.app.Activity.performCreate(Activity.java:5451) 
     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1093) 
     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2377) 

EDIT: Вот мой Manifest

<application 
    android:name=".IdeasApplication" 
    android:allowBackup="true" 
    android:icon="@drawable/idea_logo" 
    android:label="@string/app_name" 
    android:theme="@style/AppTheme" > 
    <activity 
     android:name=".SignupActivity" 
     android:label="@string/app_name" 
     android:parentActivityName=".LoginActivity" > 
    </activity> 
    <activity 
     android:name=".MainActivity" 
     android:label="@string/app_name" > 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
    <activity 
     android:name=".LoginActivity" 
     android:label="@string/app_name" 
     android:windowSoftInputMode="adjustResize|stateHidden" > 
    </activity> 
    <activity 
     android:name=".AddIdeaActivity" 
     android:label="@string/app_name" android:parentActivityName=".MainActivity"> 
    </activity> 
</application> 

<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
</manifest> 

EDIT: А вот моя тема в настройках стиля

<!-- 
    Base application theme, dependent on API level. This theme is replaced 
    by AppBaseTheme from res/values-vXX/styles.xml on newer devices. 
--> 
<style name="AppBaseTheme" parent="Theme.AppCompat.Light"> 
    <!-- 
     Theme customizations available in newer API levels can go in 
     res/values-vXX/styles.xml, while customizations related to 
     backward-compatibility can go here. 
    --> 
</style> 

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

+0

Вы пробовали 'getSupportActionBar()'? –

+0

Сделал снимок, но 'getSupportActionBar()' Не работает. Также см. Мое редактирование. Может быть, что-то с этим связано. – Rafa

+0

Вы разрешили это? –

ответ

2

Вы должны использовать getSupportActionBar вместо getActionBar, если вы работаете с ActionBarActivity. Метод getActionBar доступен в API ActionBarActivity, так как он расширяет Activity, но не должен использоваться при работе с поддержкой.

Смежные вопросы