Gradle 2.3.0-alpha1 不起作用 数据绑定



我今天更新到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
}

谢谢!

——更新我挣扎了几天,找到了问题的根源。我在我的应用程序中使用包裹,Retrolamdas,两个库都使用'apt',这是问题。

构建。gradle (root) bug version:

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
}

* *。Gradle (app) bug版本**

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'
}

这里是固定的。构建。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
}

构建。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/201https://bitbucket.org/hvisser/android-apt/wiki/Migration

D

触发此问题是因为我们将数据绑定移动到annotationProcessor配置中(而不是提供)。如果你正在使用android-apt ',它们会发生冲突,停止使用它。我们也有另一个错误,阻止它选择其他处理器。它已经修复,将在下一个alpha版本中可用。

原始bug报告在这里:https://code.google.com/p/android/issues/detail?id=227612。如果您确实需要使用2.3,它也有一个解决方案。

我用的是android-apt。我用annotationProcessor代替并解决了我的问题

我已经删除了

apply plugin: '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

暂时修复,为我工作:1. 更改gradle版本为:classpath 'com.android.tools.build:gradle:2.2.2'

  • 关闭即时运行

  • 等待Google更新:)

  • 最新更新