Dans mon projet, j'ai plusieurs modules, disons l'application module et le module A qui agissent comme une bibliothèque pour l'application module. J'utilise de liaison de données et fonctionne très bien en ajoutantLiaison de données Android avec le module <include> dans le module de bibliothèque
dataBinding { enabled = true }
dans chaque build.gradle du module.
Le problème est survenu lorsque j'utilise l'étiquette <include>
dans la disposition du module A. Il plante quand on appelle setContentView de DataBindingUtil.
java.lang.NullPointerException: tentative d'invoquer la méthode virtuelle de com.package.name.databinding.ViewToolbarBinding.invalidateAll void() 'sur une référence d'objet null
Cependant, il fonctionne très bien dans la application du module, je suis en mesure d'accéder à la vue en utilisant quelque chose comme ça.
mBindingUtil.includedLayout.viewInTheIncludedLayout
Ceci est ma mise en page de l'activité dans le module A:
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<include layout="@layout/view_toolbar"
android:id="@+id/toolbar_layout"/>
</LinearLayout>
</layout>
Et voici mon view_toolbar.xml dans le module A:
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
style="@style/ToolbarTheme"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="@color/primary_blue"
android:theme="@style/AppTheme"
app:elevation="0dp" />
</layout>
Bien que ce soit la façon dont je l'activité gonfler module A:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mBinding = DataBindingUtil.setContentView(this, R.layout.activity_with_include);
}
Toute aide est appréciée. Merci
Merci. Cependant, cela ne fonctionnera que sur fragment. Je l'ai essayé sur l'activité et son ne fonctionne pas. – luthfihariz