Android数据绑定:缺少DataBinderMapper类 java.lang.NoClassDefFoundError:android.databinding.DataBinder映射器 在android.databinding.DataBindingUtil.(DataBindingUtil.java:31) 位于com.example.MainActivity.onCreate(MainActivity.java:13) 位于android.app.Activity.performCreate(Activity.java:5231) 位于android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087) 位于android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2148) 位于android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2233) 在android.app.ActivityThread.access$800(ActivityThread.java:135) 在android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)上 位于android.os.Handler.dispatchMessage(Handler.java:102) 位于android.os.Looper.loop(Looper.java:136) 位于android.app.ActivityThread.main(ActivityThread.java:5001) 位于java.lang.reflect.Method.Invokenactive(本机方法) 位于java.lang.reflect.Method.invoke(Method.java:515) 在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)上 位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601) 在dalvik.system.NativeStart.main(本机方法)

Android数据绑定:缺少DataBinderMapper类 java.lang.NoClassDefFoundError:android.databinding.DataBinder映射器 在android.databinding.DataBindingUtil.(DataBindingUtil.java:31) 位于com.example.MainActivity.onCreate(MainActivity.java:13) 位于android.app.Activity.performCreate(Activity.java:5231) 位于android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087) 位于android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2148) 位于android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2233) 在android.app.ActivityThread.access$800(ActivityThread.java:135) 在android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)上 位于android.os.Handler.dispatchMessage(Handler.java:102) 位于android.os.Looper.loop(Looper.java:136) 位于android.app.ActivityThread.main(ActivityThread.java:5001) 位于java.lang.reflect.Method.Invokenactive(本机方法) 位于java.lang.reflect.Method.invoke(Method.java:515) 在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)上 位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601) 在dalvik.system.NativeStart.main(本机方法),android,data-binding,Android,Data Binding,我希望这是一个错误,有人面临类似的问题吗?我解压缩了分解的arr文件夹下的classes.jar,但找不到DataBinderMapper类 任何解决方法/修复都将不胜感激。您应该在build.gradle中包含android apt插件,以便生成android.databinding.DataBinderMapper类 在项目build.gradle中: java.lang.NoClassDefFoundError: android.databinding.DataBinderMapper

我希望这是一个错误,有人面临类似的问题吗?我解压缩了
分解的arr
文件夹下的
classes.jar
,但找不到
DataBinderMapper


任何解决方法/修复都将不胜感激。

您应该在build.gradle中包含android apt插件,以便生成
android.databinding.DataBinderMapper

在项目build.gradle中:

java.lang.NoClassDefFoundError: android.databinding.DataBinderMapper
        at android.databinding.DataBindingUtil.<clinit>(DataBindingUtil.java:31)
        at com.example.MainActivity.onCreate(MainActivity.java:13)
        at android.app.Activity.performCreate(Activity.java:5231)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2148)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2233)
        at android.app.ActivityThread.access$800(ActivityThread.java:135)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
        at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loop(Looper.java:136)
        at android.app.ActivityThread.main(ActivityThread.java:5001)
        at java.lang.reflect.Method.invokeNative(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:515)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
        at dalvik.system.NativeStart.main(Native Method)
dependencies {
        classpath 'com.android.tools.build:gradle:1.3.1'
        classpath 'com.android.databinding:dataBinder:1.0-rc2'
        classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
//.... more
}
在每个模块build.gradle中:

java.lang.NoClassDefFoundError: android.databinding.DataBinderMapper
        at android.databinding.DataBindingUtil.<clinit>(DataBindingUtil.java:31)
        at com.example.MainActivity.onCreate(MainActivity.java:13)
        at android.app.Activity.performCreate(Activity.java:5231)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2148)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2233)
        at android.app.ActivityThread.access$800(ActivityThread.java:135)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
        at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loop(Looper.java:136)
        at android.app.ActivityThread.main(ActivityThread.java:5001)
        at java.lang.reflect.Method.invokeNative(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:515)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
        at dalvik.system.NativeStart.main(Native Method)
dependencies {
        classpath 'com.android.tools.build:gradle:1.3.1'
        classpath 'com.android.databinding:dataBinder:1.0-rc2'
        classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
//.... more
}

确保所有使用数据绑定的模块都已启用。这就是我得到那个例外的原因。
上周我遇到了这个问题,很难弄清楚,但最后我发现在不同的库中有两个同名的布局,每个都使用数据绑定。我猜这是导致生成的绑定类在运行时处于某种不良状态的原因

我能够对它进行故障排除,在这种情况下,我没有在一个片段上得到这个错误,而是在具有相同名称布局的片段上发生了
ClassCastException
。生成的绑定类试图将LinearLayout强制转换为RelativeLayout。唯一可以做到这一点的方法是,如果它试图使用来自具有相同名称的完全不同的模块的布局文件


在确保没有共享相同名称的布局(即使在不同的库模块之间)后,它清除了。

我也面临着同样的错误。我所做的是在app.gradle文件中更新了数据绑定的依赖项

android {
    ...
    dataBinding {
        enabled = true
    }
}


更新了databinder编译器后,我开始出现此错误。为了摆脱这个问题,我必须将数据绑定编译器恢复到旧版本,这使我摆脱了这个问题。现在,我正在等待稳定的数据绑定编译器版本,并将升级到该版本,直到那时,我将使用旧的编译器版本。

如果在运行测试时遇到此问题,只需添加:


对所有模块的
build.gradle
文件执行
dependencies

它是一个生成的类,因此由于某些原因,注释处理器未运行。你能分享你的gradle文件吗?@yigit我也有同样的问题。请帮忙。你能分享一个完整的项目吗。这个构建文件中没有明显的错误android studio 2.3不再支持android apt插件,你知道现在该如何修复吗?@shoe,去掉android apt插件,这可能有助于它真正工作。在我的例子中,我只为
功能主页
模块启用了数据绑定,但忘了在
应用程序
模块中也启用它。这就是我看到这个案子的原因。在将数据绑定添加到
应用程序
模块后,它也会按预期工作。让我开始奖励并奖励此答案。tl;dr-如果某些
模块
使用数据绑定,但应用程序(
应用程序
)模块不使用数据绑定,那么它在任何地方都不会工作。因此,
module
使您的
应用程序也能使用它。
kapt 'com.android.databinding:compiler:3.2.0-alpha04'
kaptTest "androidx.databinding:databinding-compiler:+"