Répertoire d'articles
1. Traitement des exceptions
Tentative d'appeler la méthode virtuelle 'ActionBar.setHomeButtonEnabled (boolean)' sur une référence d'objet null
java.lang.RuntimeException: Unable to start activity ComponentInfo{
}: java.lang.NullPointerException: Attempt to invoke virtual method 'void androidx.appcompat.app.ActionBar.setHomeButtonEnabled(boolean)' on a null object reference
// ......
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void androidx.appcompat.app.ActionBar.setHomeButtonEnabled(boolean)' on a null object reference
// ......
2. La raison
Le fichier de disposition ToolBar n'est pas référencé dans la disposition Activity, mais uniquement défini dynamiquement, de sorte que lorsque vous utilisez ou obtenez l'ActionBar, vous obtiendrez une erreur car la ToolBar n'est pas définie correctement.
3. Résoudre
3.1 Fichier de mise en page
// 主布局文件
<LinearLayout android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:android="http://schemas.android.com/apk/res/android">
<include layout="@layout/toobar"/>
</LinearLayout>
// toolbar.xml文件
<?xml version="1.0" encoding="utf-8"?>
<androidx.appcompat.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/toolbar_test"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:contentInsetStart="0dp">
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:text="Toolbar"
android:textSize="20dp" />
</androidx.appcompat.widget.Toolbar>
3.2 Fichiers Java
private void initToolBar() {
Toolbar toolbar_test = (Toolbar)findViewById(R.id.toolbar_test);
setSupportActionBar(toolbar_test);
}
4. Résultats
5. Questions nécessitant une attention particulière
Java présente ToolBar comme suit:
import androidx.appcompat.widget.Toolbar;