【问题标题】:Gradle 2.3.0-alpha1 doesn't work data bindingGradle 2.3.0-alpha1 不工作数据绑定
【发布时间】:2017-03-06 02:29:00
【问题描述】:

我今天更新到 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) 错误版本**

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

【问题讨论】:

  • 你需要dataBinder做什么?
  • 我只遵循 android 数据绑定指南。 dataBinder 有什么问题吗?
  • 我试图删除行 classpath 'com.android.databinding:dataBinder:1.0-rc1' 但它仍然保持上面显示错误
  • 同样的问题。

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


【解决方案1】:

触发此问题是因为我们已将数据绑定移至 annotationProcessor 配置(而不是提供)。 如果您使用的是 android-apt`,它们会发生冲突,请停止使用它。 我们还有另一个错误,它阻止它选择其他处理器。它已经修复,将在下一个 Alpha 版中提供。

此处为原始错误报告:https://code.google.com/p/android/issues/detail?id=227612。如果您确实需要使用 2.3,它也可以解决。

【讨论】:

  • 请在重现您的问题的错误报告中分享一个示例应用程序。
【解决方案2】:

我使用的是 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'

【讨论】:

  • 你对androidTestApt有什么想法吗?删除 android-apt 后,我在构建过程中出现错误:(
【解决方案3】:

对我有用的临时修复: 1.将gradle版本改为: classpath 'com.android.tools.build:gradle:2.2.2'

  1. 关闭即时运行

  2. 等待来自 Google 的更新 :)

【讨论】:

  • 每次运行该应用程序要花费我 2 到 3 分钟 :)) 太“神奇”(哭泣)
猜你喜欢
  • 1970-01-01
  • 2016-04-19
  • 2020-02-01
  • 2016-09-16
  • 2015-11-24
  • 1970-01-01
  • 1970-01-01
  • 2017-08-30
  • 1970-01-01
相关资源
最近更新 更多