Android数据绑定NoSuchMethodError

我无法将我的项目设置为使用Android数据绑定。 这是我的build.gradle

 apply plugin: 'com.android.databinding' buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:1.5.0-beta2' classpath "com.android.databinding:dataBinder:1.0-rc4" } } android { ... dataBinding { enabled = true } compileSdkVersion 21 buildToolsVersion "20.0.0" ... } 

当我构建时,我收到此错误:

[数据绑定插件]:无法设置数据绑定

java.lang.NoSuchMethodError:android.databinding.tool.LayoutXmlProcessor。(Ljava / lang / String; Ljava / util / List; Landroid / databinding / tool / writer / JavaFileWriter; IZ)V

编辑

我修改了build.gradle

 buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:1.5.0' } } 

但我仍然得到同样的错误。 我也有这个apt配置:

 apt { arguments { androidManifestFile variant.outputs[0].processResources.manifestFile } } 

因为我正在使用AndroidAnnotations。

您现在应该使用1.5.0进行设置,并且不使用显式数据绑定导入:

 buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:1.5.0' } } 

Android Data Binding 1.0作为Android gradle插件的一部分发布。

虽然George的回答是正确的,但我认为清楚每个build.gradle文件中的内容是很重要的。

因此,在项目的build.gradle文件中,我们应该:

 buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:1.5.0' } } 

在应用程序的build.gradle文件中应该有:

 apply plugin: 'com.android.application' // No need to add it as a plugin // apply plugin: 'com.android.databinding' android { ... dataBinding { enabled = true } compileSdkVersion  buildToolsVersion  ... } 

我们不需要在应用程序的build.gradle文件中添加apply plugin: 'com.android.databinding' ,因为正如George所说:

Android Data Binding 1.0作为Android gradle插件的一部分发布。

有关详细信息,请查看“ 数据绑定指南” 。