基于不同的API遇到ActionBar NullPointerException问题。 我的所有活动都扩展了Activity 。
这是我的代码:
摇篮
minSdkVersion 17 targetSdkVersion 23 compile 'com.android.support:appcompat-v7:23.1.1' compile 'com.android.support:support-v4:23.1.1' compile 'com.android.support:design:23.1.1'样式:
<style name="AppTheme" parent="Theme.AppCompat.Light">样式(值-v21):
<style name="AppTheme" parent="android:Theme.Material.Light">活动:
ActionBar actionBar = getActionBar(); assert actionBar != null; actionBar.hide();它在API23上工作正常,但在较低的时候给出NullPointerException 。
阅读其他类似问题,尝试使用ActionBarActivity (已弃用), AppCompatActivity , SupportActionBar但我无法让它适用于不同的API。
有什么建议么? 任何帮助将非常感激。 提前致谢。
Having issue with ActionBar NullPointerException based on different API. All my activities extend Activity .
This is my code:
Gradle
minSdkVersion 17 targetSdkVersion 23 compile 'com.android.support:appcompat-v7:23.1.1' compile 'com.android.support:support-v4:23.1.1' compile 'com.android.support:design:23.1.1'Styles:
<style name="AppTheme" parent="Theme.AppCompat.Light">Styles (values-v21):
<style name="AppTheme" parent="android:Theme.Material.Light">Activity:
ActionBar actionBar = getActionBar(); assert actionBar != null; actionBar.hide();It works fine on API23 but give NullPointerException on lower.
Read other similar question, tried with ActionBarActivity (deprecated), AppCompatActivity, SupportActionBar but I am not able to let it works on different API.
Any suggestions? Any help would be much appreciated. Thanks in advance.
最满意答案
你应该:
使用AppCompatActivity 使用getSupportActionBar()而不是getActionBar() 为所有设备使用相同的主题Theme.AppCompat.Light (删除v21中的材质主题)You should:
use the AppCompatActivity use getSupportActionBar() instead of getActionBar() use the same theme Theme.AppCompat.Light for all devices (remove the material theme in v21)更多推荐
发布评论