代码之家  ›  专栏  ›  技术社区  ›  oli.G

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

  •  12
  • oli.G  · 技术社区  · 7 年前
    • 为了在我的Android Studio版本中支持即时运行,我需要 从版本 2.2.3 2.3.3
    • migrate to annoationProcessor 我相信我正确地遵循了这个指南
    • 这样做之后

    • 确保您使用的是Android Gradle 2.2插件或更新版本
    • 从构建脚本中删除android apt插件

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

    Gradle构建在12s 481ms内完成,出现101个错误和23个警告

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

      • 错误:包 com.example.app.databinding 不存在
      • ItemFooBinding

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

    我想指出。。。

    • 我在一些XML文件中没有错误 、绑定表达式或命名问题。当我使用旧的gradle插件版本(以及所有其他最新的源文件)切换回Git分支时,生成了相同的源代码集和XML
    • 如前所述,我确实提高了输出构建错误的限制 here

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

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

    • 科特林
    • 领域
    • 改装
    • 匕首
    • 多索引支持库

    有人知道问题出在哪里吗?任何帮助或想法都将不胜感激!

    3 回复  |  直到 7 年前
        1
  •  16
  •   Dr.jacky Mateusz Kaflowski    7 年前

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

    希望它能帮助别人

    更新:
    3.0.1 Android Plugin Version .

        2
  •  2
  •   Uli    7 年前

    这就是为什么建议您将构建错误限制提高到100以上的原因-您不会看到导致问题的实际错误,因为它们通常不会在列表中显示得很早。

    annotationProcessor 改变所以要注意匕首错误。但是您的问题可能是由其他因素引起的,比如您提到的其他注释处理器——除非您努力挖掘构建错误,否则您无法确定。

        3
  •  1
  •   oli.G    7 年前

    我使用Kotlin的项目 事实上,我们把它混为一谈:一些类使用普通的旧Java,而另一些则是用Kotlin编写的。不完整的迁移。:)

    我假设没有Kotlin apt annotationProcessor 就足够了,我根本就不会遇到这个问题。

    注释需要由两者处理 注释处理器 kapt ,它似乎是Kotlin自己的注释处理器。

    对于使用注释的每个渐变依赖项,您应该具有 在你的应用程序级别 build.gradle :

    • annotationProcessor 'com.example.my.library:x.y.z
    • kapt 'com.example.my.library:x.y.z