Android getActionBar() 爲null解決方案

這段時間坐demo的時候,actionbar報nullpointerexception.後來我花時間去整理了一下,報這個異常的幾個原因:
一、ActionBar 的主題Theme

檢查你的應用是否設置了沒有 ActionBar 的主題Theme,或者直接設置了 NoActionBar或NoTitleBar 屬性,主要要檢查這幾點:檢查 AndroidManifest.xml 中的 標籤中的theme屬性,然後檢查各個 Activity 標籤中是否有不同的 Theme 導致這個界面的 ActionBar 無法顯示,@android:style/Theme.NoTitleBar和<item name="windowActionBar">false</item> 
<item name="android:windowNoTitle">true</item>這樣的屬性都會使應用中的 ActionBar消失,切記,如果你要使用ActionBar,則一定要清除掉這些

二、res 目錄下的 values

如果你的項目中 res 目錄下除了 values 目錄外,還有其他的res/values-v11,style/values-v14等,則這些目錄中的 styles.xml 都需要檢查一下

三,檢查你導入的包

不要把android.app.ActionBar和android.support.v7.app.ActionBar混淆了

四、檢查activity代碼

Activity 代碼中是否動態設置了全屏或者不顯示TitleBar,代碼如下: 
//requestWindowFeature(Window.FEATURE_NO_TITLE); 
//getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);

五、檢查支持版本

如果你的項目使用的是 android.app.ActionBar,則需要把你應用的最低支持版本改爲11(Android 3.0),使用 getActionBar() 來獲取ActionBar,如果你的項目要支持Android 3.0以下,則你的項目需要引入最新的 AppCompat 兼容包,然後將 ActionBar引用改爲 android.support.v7.app.ActionBar,並使用 getSupportActionBar 來獲取 ActionBar

如果再不行的話,可能就是你的actionBar哪裏寫錯了,這裏我朋友建議我看了一篇博客,關於自定義actionBar的博客http://www.tuicool.com/articles/7BJBZb

如果大家有其他的有關 getActionBar() 爲null的問題,方法和經驗,歡迎討論交流。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章