2014-12-26 2 views
1

간단히 말해서 ActionBar를 호출하고 hide()를 호출하면 nullpointer 예외가 발생합니다. 일반적인 문제이므로 내가 시도한 것을 언급 할 것입니다.ActionBar가 NullPointerException을 반환합니다.

- AppTheme이 Theme.WithoutActionBar을 선언하지 않았는지 확인하십시오.

- 확장 작업 Action 대신 'import android.support.v7.app.ActionBarActivity;

이해 해봐 내가> 11

EDIT로 최소 SDK를 사용하고 있는지 확인 : 나는 안드로이드 스튜디오 프로젝트를 전환 할 때 액션 바로이 모든 혼란은 널 (null) 시작, 리턴

여기 안에 내 코드입니다 oncreate() 내가 actionbar를 망치고있는 곳. 여기 내 매니페스트

<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> 

편집이다 :

@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(); 

그리고 여기가

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 내 로그 캣 오류입니다 그리고 여기에 스타일 설정에서 내 테마

<!-- 
    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

ActionBarActivity으로 작업하는 경우 대신 getSupportActionBar을 사용해야합니다. getActionBar 메서드는 Activity까지 확장되었으므로 ActionBarActivity API에서 사용할 수 있지만 지원 활동으로 작업 할 때는 사용하면 안됩니다.

관련 문제