- 为了在我的 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 文件:
build.gradle
DiffChecker linkapp/build.gradle
DiffChecker link
此外,作为快速概览,这里列出了该项目使用的一些“更有趣”的插件和库:
- Kotlin
- 安卓数据绑定(bind)
- 领域
- 改造
- Dagger
- ButterKnife(我知道...)
- Multidex 支持库
有人知道可能是什么问题吗?任何帮助或想法将不胜感激!
最佳答案
我收到了完全相同的警告。 gradle 中的这一行解决了这个问题:
kapt "com.android.databinding:compiler:3.0.1"
希望对大家有帮助
更新:
3.0.1
是 Android Plugin Version .
关于Gradle 插件更新并迁移到 annotationProcessor 后,Android 数据绑定(bind)构建失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45165752/