1

我在 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 的整个代码,但是当我单击工具栏中的“设置”时,应用程序将关闭。

应用关闭的 SettingsActivity 有什么问题?

我的 AndroidManifest.xml:

在此处输入图像描述

我的样式.xml

在此处输入图像描述

在类中隐藏 ActionBar 而 styles.xml 有 Light.DarkActionBar

    ActionBar bar  = getSupportActionBar () ;
    if       (bar != null) bar.hide () ;
4

2 回答 2

0

问题是因为您的活动没有任何 ActionBar。在 android manifest 中,确保您的 Activity 使用的是具有ActionBar. 确保它没有类似NoActionBar. 如果您的活动未使用任何主题,请检查您AppThemestyles.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" />
于 2017-10-03T01:57:13.183 回答
0

您的样式主题是 noactionbar 1。如果您想要一个操作栏,请使用包含主题的操作栏或 2。您还可以制作类似于操作栏的自定义视图

于 2017-10-03T19:12:25.860 回答