Gradle 插件更新并迁移到 annotationProcessor 后,Android 数据绑定(bind)构建失败

标签 android android-studio android-gradle-plugin android-databinding android-build

  • 为了在我的 Android Studio 版本中支持 Instant Run,我需要将我的 Gradle 插件从版本 2.2.3 升级到 2.3.3
  • 我知道我应该migrate to annoationProcessor我相信我已经正确地遵循了该指南
  • 这样做之后,Android DataBinding 代码生成失败

前面链接的迁移指南指出我需要的只是

  • Make sure you are on the Android Gradle 2.2 plugin or newer
  • Remove the android-apt plugin from your build scripts
  • Change all apt, androidTestApt and testApt dependencies to their new format

这应该是成功构建项目所需的全部内容。但它没有构建。

构建输出

Gradle build finished with 101 error(s) and 23 warning(s) in 12s 481ms

所有错误都遵循相同的模式:

  • C:\Users...\FooAdapter.java
    • error: package com.example.app.databinding does not exist
    • error: cannot find symbol class ItemFooBinding

可以在构建控制台中找到一条有趣的消息:

Warning:The following options were not recognized by any processor: '[android.databinding.minApi, android.databinding.enableDebugLogs, android.databinding.sdkDir, android.databinding.bindingBuildFolder, android.databinding.enableForTests, android.databinding.modulePackage, android.databinding.generationalFileOutDir, android.databinding.xmlOutDir, android.databinding.artifactType, android.databinding.printEncodedErrors, android.databinding.isTestVariant]'

我想指出...

  • 我假设我在某些 XML 文件中没有错误、绑定(bind)表达式或命名问题。当我使用旧的 gradle 插件版本(以及所有其他源文件都是最新的)切换回 Git 分支时,构建相同的源和 XML 集
  • 我确实增加了所讨论的输出构建错误的限制 here ,虽然这现在似乎不相关,因为如您所见,我目前“只有” 101 个错误。 :)

附加信息

以下差异显示了我如何修改我的 gradle 文件:

  1. build.gradle DiffChecker link
  2. app/build.gradle DiffChecker link

此外,作为快速概览,这里列出了该项目使用的一些“更有趣”的插件和库:

  • Kotlin
  • 安卓数据绑定(bind)
  • 领域
  • 改造
  • Dagger
  • ButterKnife(我知道...)
  • Multidex 支持库

有人知道可能是什么问题吗?任何帮助或想法将不胜感激!

最佳答案

我收到了完全相同的警告。 gradle 中的这一行解决了这个问题:

kapt "com.android.databinding:compiler:3.0.1"

希望对大家有帮助

更新:
3.0.1Android Plugin Version .

关于Gradle 插件更新并迁移到 annotationProcessor 后,Android 数据绑定(bind)构建失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45165752/

相关文章:

android - 如何在 Android Studio 中导入在 GitHub 上找到的组件?

android - 了解 Gradle (Android Studio) 有多重要?

android - Android 客户端拒绝连接

android - 为什么 isProviderEnabled() 方法即使在建筑物内部也始终返回 true

java - Android Studio - 项目文件夹中只有一个 build.gradle

android - Gradle:如何为类(class)运行仪器测试

java -\n 不起作用?我的代码有什么问题吗?

android - 如何在android中设置这个tableLayout?

java - Android Studio 类名自动完成建议红色

url - 从URL gradle-wrapper.properties文件?