ClassNotFoundException: finde nicht die Klasse “android.databinding.DataBinderMapper"
Ich bin mit den android-data-binding-Bibliothek für Ansichten, die in einem - Bibliothek-Projekt
habe ich die folgende Zeile in mein root-gradle-Datei
classpath 'com.android.databinding:dataBinder:1.0-rc1'
und aktiviert haben, das dataBinding unten im Modul die gradle-Datei
apply plugin: 'com.android.databinding'
...
...
android {
....
dataBinding {
enabled = true
}
}
ich habe aktiviert das multiDex in "meine Bibliothek" - Projekt
sowie in der host-app, die die Verwendung dieser Bibliothek
aber ich bekomme diese stack-trace des Fehlers beim Start der Tätigkeit der Bibliothek
java.lang.NoClassDefFoundError: Failed resolution of: Landroid/databinding/DataBinderMapper;
at android.databinding.DataBindingUtil.<clinit>(DataBindingUtil.java:31)
at sdk.ui.activities.MyActivity.onCreate(MyActivity.java:76)
at android.app.Activity.performCreate(Activity.java:6280)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1116)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2534)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2647)
at android.app.ActivityThread.-wrap11(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1502)
at android.os.Handler.dispatchMessage(Handler.java:111)
at android.os.Looper.loop(Looper.java:207)
at android.app.ActivityThread.main(ActivityThread.java:5763)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:888)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:749)
Caused by: java.lang.ClassNotFoundException: Didn't find class "android.databinding.DataBinderMapper" on path: DexPathList[[zip file "/data/app/testApp.dev-1/base.apk"],nativeLibraryDirectories=[/data/app/testApp.dev-1/lib/arm64, /data/app/testApp.dev-1/base.apk!/lib/arm64-v8a, /vendor/lib64, /system/lib64]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
at java.lang.ClassLoader.loadClass(ClassLoader.java:469)
at android.databinding.DataBindingUtil.<clinit>(DataBindingUtil.java:31)
at sdk.ui.activities.MyActivity.onCreate(MyActivity.java:76)
at android.app.Activity.performCreate(Activity.java:6280)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1116)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2534)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2647)
at android.app.ActivityThread.-wrap11(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1502)
at android.os.Handler.dispatchMessage(Handler.java:111)
at android.os.Looper.loop(Looper.java:207)
at android.app.ActivityThread.main(ActivityThread.java:5763)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:888)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:749)
Suppressed: java.lang.ClassNotFoundException: android.databinding.DataBinderMapper
at java.lang.Class.classForName(Native Method)
at java.lang.BootClassLoader.findClass(ClassLoader.java:781)
at java.lang.BootClassLoader.loadClass(ClassLoader.java:841)
at java.lang.ClassLoader.loadClass(ClassLoader.java:504)
... 15 more
Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack trace available
- Möglich, Duplikat der Android Data Binding: fehlende DataBinderMapper Klasse
- posten Sie Ihre gradle-Datei
- Versuchen Sie, invalidate-cache und starten Sie Android Studio
- habe bereits versucht
Du musst angemeldet sein, um einen Kommentar abzugeben.
Stellen Sie sicher, dass ALLE Module, die Datenbindung haben es aktiviert. Dies war der Grund, ich habe, die Ausnahme.
schließlich war ich in der Lage, dieses Problem zu lösen.
Es scheint, es war ein Konflikt zwischen apt-version der app und library-Module.
aktualisiert die apt-version im app
Neben dem hinzufügen der folgenden
build.gradle
:Außerdem muss ich fügen Sie die folgende Abhängigkeit:
Beste Vermutung. Loswerden
android-apt
Und wenn es gibt Bibliotheken mit
apt
Statt
apt 'lt.mdm.sdd:myLib:1.5.1'
verwendenannotationProcessor 'lt.mdm.sdd:myLib:1.5.1'
.Ich bin mir nicht sicher, ob dies wird Ihnen helfen, und ich habe keine Ahnung, wenn die Bibliothek es selbst geändert werden sollte.
Es hat mir geholfen (ich war mit
androidannotations.org
ältere version mit apt) mindestens.Update
Und ich habe keine Ahnung, warum Sie
apply plugin: 'com.android.databinding'
? Es funktioniert, ohne es als gut.classpath 'com.android.databinding:dataBinder:1.0-rc1'
apply plugin: 'com.android.databinding'
Entfernen lib. von gradle.
Ich hatte das gleiche problem, aber ich löste es entfernen
aus der globalen bauen.gradle und entfernen
vom lokalen build.gradle, dann funktionierte es wie ein Charme.
Es scheint, dass es war ein gemischtes problem mit Butterknife zu. Ziemlich seltsam.