我在Android Studio" Android Monitor"
中收到以下错误有很多笨蛋,但它实质上是说错误的原因如下:
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.support.v7.app.ActionBar.setDisplayHomeAsUpEnabled(boolean)' on a null object reference
at com.example.robthoms.photopop.SettingsActivity.onCreate(SettingsActivity.java:28)
我试图让设置在工具栏上运行,我从以下代码获得了代码:
https://www.androidhive.info/2017/07/android-implementing-preferences-settings-screen/
如果您点击此链接,您会看到我尝试使用的SettingsActivity.java的完整代码,但是当我点击"设置"在工具栏中,App关闭。
应用关闭的SettingsActivity有什么问题?
我的AndroidManifest.xml:
我的styles.xml
在类中隐藏ActionBar,而styles.xml包含Light.DarkActionBar
ActionBar bar = getSupportActionBar () ;
if (bar != null) bar.hide () ;
答案 0 :(得分:0)
问题是由于您的活动没有任何ActionBar引起的。在Android清单中,请确保您的活动使用的主题为ActionBar
。确保它没有NoActionBar
之类的内容。如果您的活动未使用任何主题,请检查AppTheme
中的styles.xml
。
一种可能的解决方案是在清单中使用它:
<activity
android:name=".SettingsActivity"
android:theme="@style/Theme.AppCompat.Light" />
另一种方式:
在styles.xml中添加新样式:
<style name="AppTheme.ActionBar" parent="AppTheme">
<item name="windowActionBar">true</item>
<item name="windowNoTitle">false</item>
</style>
在清单中使用新样式:
<activity
android:name=".SettingsActivity"
android:theme="@style/AppTheme.ActionBar" />
答案 1 :(得分:0)
你的风格主题是noactionbar 1.如果您想要一个动作栏,请使用包含主题的动作栏 要么 2.您还可以制作类似于操作栏的自定义视图