Android 数据绑定 NoSuchMethodError
Android Data Binding 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"
...
}
构建时出现此错误:
[data binding plugin]: failed to setup data binding
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
}
}
因为我正在使用 Android注释。
您现在应该使用 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 <latest>
buildToolsVersion <latest>
...
}
我们不需要在应用程序的 build.gradle
文件中添加 apply plugin: 'com.android.databinding'
,因为正如乔治所说:
Android Data Binding 1.0 was released as part of the Android gradle
plugin.
查看 Data Binding Guide 了解更多详情。
我无法设置我的项目以使用 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"
...
}
构建时出现此错误:
[data binding plugin]: failed to setup data binding
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
}
}
因为我正在使用 Android注释。
您现在应该使用 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 <latest>
buildToolsVersion <latest>
...
}
我们不需要在应用程序的 build.gradle
文件中添加 apply plugin: 'com.android.databinding'
,因为正如乔治所说:
Android Data Binding 1.0 was released as part of the Android gradle plugin.
查看 Data Binding Guide 了解更多详情。