Gradle 2.3.0-alpha1无法使用数据绑定

时间:2016-11-12 11:38:18

标签: android android-gradle build.gradle android-databinding parceler

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

4 个答案:

答案 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'

  1. 关闭即时运行

  2. 等待Google的更新:)