Shwing Error : Attempt to invoke virtual method 'void androidx.appcompat.app.ActionBar.setDisplayHomeAsUpEnabled(boolean)

Shwing Error : Attempt to invoke virtual method 'void androidx.appcompat.app.ActionBar.setDisplayHomeAsUpEnabled(boolean)

我想在我的 StreamActivity 中实现 Android ActionBar 后退按钮,但出现此错误:

    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.schoolteacher/com.example.schoolteacher.StreamActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void androidx.appcompat.app.ActionBar.setDisplayHomeAsUpEnabled(boolean)' on a null object reference

我不知道为什么这不起作用,尽管我遵循了文档中的所有说明!另外,我在其他项目中也正是这样做的,并且有效。

这是我的代码:

StreamActvivty.java

public class StreamActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_stream);

        Toolbar toolbar = findViewById(R.id.toolbar);

        setSupportActionBar(toolbar);
        ActionBar actionBar= getSupportActionBar();
        actionBar.setDisplayHomeAsUpEnabled(true); 

    }

}

styles.xml

<style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar"/>
<style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light" />

清单

<activity android:name=".StreamActivity"
            android:label="@string/stream"
            android:parentActivityName=".ClassActivity">
            <meta-data
                android:name="android.support.PARENT_ACTIVITY"
                android:value=".ClassActivity" />
        </activity>

试试这个

在 onCreate 中添加这个

 ActionBar actionBar = this.getSupportActionBar();
 if (actionBar != null) {
    actionBar.setDisplayHomeAsUpEnabled(true);
 }

在 onCreate 之外添加它,用于导航回父级 activity

@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
   if (id == android.R.id.home) {
    NavUtils.navigateUpFromSameTask(this);
}
    return super.onOptionsItemSelected(item);
}

并设置父级 activity

  <activity
        android:name=".activity.CreateAccountActivity"
        android:parentActivityName=".activity.LoginActivity" />

要将 Toolbar 用作 ActionBar,首先确保 AndroidX 支持库已添加到您的应用程序 build.gradle (Module:app) 文件中:

dependencies {
   ...
   implementation 'androidx.appcompat:appcompat:1.0.0'
}

您必须禁用为 ActionBar 提供的主题。将您的主题从 styles.xml 更改为:

<resources>
  <!-- Base application theme. -->
  <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
  </style>
</resources>

你的activity_stream.xml里面有工具栏吗? 还要检查您的导入。

    import androidx.appcompat.app.ActionBar;
    import androidx.appcompat.widget.Toolbar;