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插件的一部分发布。
有关详细信息,请查看“ 数据绑定指南” 。