2.2.3
升级到2.3.3
之前链接的迁移指南指出,我只需要
- 确保您使用的是Android Gradle 2.2插件或更新
- 从构建脚本中删除android-apt插件
- 将所有apt,androidTestApt和testApt依赖项更改为新格式
这应该是成功构建项目所需的全部内容。但它并没有建立起来。
Gradle build在12s 481ms
完成了101个错误和23个警告
所有错误都遵循相同的模式:
- C:\用户... \ FooAdapter.java
- 错误:包
com.example.app.databinding
不存在- 错误:找不到符号类
ItemFooBinding
可以在构建控制台中找到一条有趣的消息:
警告:任何处理器都无法识别以下选项:' [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]'
我想指出......
以下差异显示了我如何修改我的gradle文件:
build.gradle
DiffChecker link app/build.gradle
DiffChecker link 另外,作为一个快速概述,这里列出了一些更有趣的"插件和项目使用的库:
有没有人知道可能是什么问题?任何帮助或想法都会非常感激!
答案 0 :(得分:13)
我有完全相同的警告。 gradle中的这一行解决了这个问题:
kapt "com.android.databinding:compiler:3.0.1"
希望它会帮助某人
<强>更新强>
3.0.1
为Android Plugin Version。
答案 1 :(得分:2)
如果你看到无数的构建错误,就像在这种情况下提到数据绑定一样,那么问题通常就在其他地方。数据绑定因无关的构建问题而停止在其轨道上,并且抱怨非常大声。处理它的唯一方法是找到与数据绑定无关的构建错误。一旦它们被修复,数据绑定就可以再次完成它并保持沉默。不幸的是,您经常需要多次重复此方法,直到找到所有非数据绑定问题。这肯定是一项艰巨的任务,但不幸的是,在谷歌设法提供更健全的构建环境之前,你无能为力。
这就是为什么建议您将构建错误限制提高到100以上的原因 - 您不会看到导致问题的实际错误,因为它们通常不会在列表的早期显示。
我有机会猜测 - Dagger 2是触发此问题的常见来源,可能与您的annotationProcessor
更改有关;所以要注意Dagger的错误。但是你的问题可能是由其他事情引起的,比如你提到的其他注释处理器 - 在你努力挖掘构建错误之前,你不会确切知道。
答案 2 :(得分:2)
似乎一切都归结为使用Kotlin的项目。实际上我们把它混合在一起:有些类使用普通的旧Java,而有些类用Kotlin编写。迁移不完整。 :)
我认为如果没有Kotlin,将apt
替换为annotationProcessor
就足够了,我根本不会遇到这个问题。
注释需要由annotationProcessor
和kapt
处理,这似乎是Kotlin自己的注释处理器。
对于使用注释的每个Gradle依赖项,您的应用级build.gradle
中应包含以下 :
annotationProcessor 'com.example.my.library:x.y.z
kapt 'com.example.my.library:x.y.z