我今天更新到Android Studo 2.3 Canary后遇到了问题。
构建完成但没有错误,但是当我运行应用程序时,gradle控制台会一直显示:
未找到android.databinding.annotationprocessor.ProcessDataBinding
这是我的build.gradle
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
jcenter()
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle 2.3.0-alpha1'
classpath 'com.google.gms:google-services:3.0.0'
classpath 'com.android.databinding:dataBinder:1.0-rc1'
classpath 'me.tatarka:gradle-retrolambda:3.3.1'
classpath 'me.tatarka.retrolambda.projectlombok:lombok.ast:0.2.3.a2'
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
jcenter()
maven { url "https://jitpack.io" }
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
谢谢!
--- ---更新 我挣扎了几天,我发现问题来自哪里。 我在我的应用程序中使用Parcels,Retrolamdas,两个库都使用'apt',这就是问题。
build.gradle(root)错误版本:
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.2.2'
classpath 'com.google.gms:google-services:3.0.0'
classpath 'com.android.databinding:dataBinder:1.0-rc1'
classpath "me.tatarka:gradle-retrolambda:3.2.3"
classpath 'me.tatarka.retrolambda.projectlombok:lombok.ast:0.2.3.a2'
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
jcenter()
maven { url "https://jitpack.io" }
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
** build.gradle(app)bug version **
apply plugin: 'com.android.application'
apply plugin: 'com.neenbedankt.android-apt'
apply plugin: 'me.tatarka.retrolambda'
apply plugin: 'android-apt'
...
dependencies {
compile 'org.parceler:parceler-api:1.1.5'
apt 'org.parceler:parceler:1.1.5'
}
这是固定的。 build.gradle(root)修正版:
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.3.0-alpha1'
classpath 'com.google.gms:google-services:3.0.0'
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
classpath 'me.tatarka:gradle-retrolambda:3.3.1'
}
}
allprojects {
repositories {
jcenter()
maven { url "https://jitpack.io" }
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
build.gradle(app)修正版*
apply plugin: 'com.android.application'
apply plugin: 'me.tatarka.retrolambda'
compile 'org.parceler:parceler-api:1.1.5'
annotationProcessor 'org.parceler:parceler:1.1.5'
结论。 我更改了retrolamdas repo版本并删除了插件:'android-apt' 如果你想查看细节,我会找到一些有用的链接。
https://github.com/johncarl81/parceler/issues/201 https://bitbucket.org/hvisser/android-apt/wiki/Migration
希望它有所帮助:D
答案 0 :(得分:6)
此问题已触发,因为我们已将数据绑定移至annotationProcessor配置(而非提供)。 如果您使用的是android-apt`,它们会发生冲突,请停止使用它。 我们还有另一个错误,它阻止它选择其他处理器。它已经修复,将在下一个alpha中提供。
原始错误报告:https://code.google.com/p/android/issues/detail?id=227612。如果你真的需要使用2.3,它还有一个解决方法。
答案 1 :(得分:4)
我使用的是android-apt。我用annotationProcessor替换并解决了我的问题
我已删除
申请插件:'com.neenbedankt.android-apt'
并更改了Dagger库代码
编译'com.google.dagger:dagger:2.7'
annotationProcessor'com.google.dagger:dagger-compiler:2.7'
提供'org.glassfish:javax.annotation:10.0-b28'
答案 2 :(得分:0)
您可以尝试将apt 'com.android.databinding:compiler:2.3.0'
添加到gradle依赖项
答案 3 :(得分:-4)
对我有用的临时修复:
1.将gradle版本更改为:
classpath 'com.android.tools.build:gradle:2.2.2'
关闭即时运行
等待Google的更新:)