gpt4 book ai didi

android - NonExistentClass 无法转换为 Annotation

转载 作者:行者123 更新时间:2023-11-29 23:19:45 47 4
gpt4 key购买 nike

我在我的项目中添加了一个新的 Retrofit 接口(interface),其中包含几个用 @GET@HEADERS 注释注释的端点,在将所述接口(interface)注入(inject)存储库类之后使用所述类的构造函数中的 @Inject 注释,Android Studio 抛出此错误:

NonExistentClass cannot be converted to Annotation

查看生成的 Java 代码后,它将 @GET@HEADERS 注释替换为:

@error.NonExistentClass()

我已经尝试过以下方法:

  • 使用 annotatioProcessor 代替 kapt

  • gradle.properties

    中将 jetifier.enabled 设置为 false
  • 在我的 build.gradle 文件中将 generateStubs 设置为 true

  • 在我的 build.gradle 文件中将 correctErrorTypes 设置为 true

我正在使用:

  • Android Studio 3.3

  • Kotlin 1.3.11

  • Dagger 2.21

  • 改造 2.3.0

  • Kotlin

  • 卡普特

会不会是 Dagger 瞄准镜的问题?或者 Retrofit/dagger 与新版本的 Kapt 插件不完全兼容?

最佳答案

幸运的是,这个问题让我弄清楚了我的问题。在将类从应用程序模块移动到库时,我引用了一个仅存在于调试文件夹中的注释类。因此调试构建很好,但是在生成发布文件时调用 gradlew install 失败。

虽然我花了很长时间才意识到这个错误对我来说非常明确 - 生成的文件确实用 @error.NonExistentClass() 替换了缺失的注释

将文件移动到主 src 集中意味着调试和发布版本都可以看到该类。我花了一段时间才弄清楚,我认为这是一个被 kapt 掩盖的 Dagger 问题,但实际上这只是一个普通的旧 Dagger 问题。我的建议是仔细查看您的 Dagger 设置。

关于android - NonExistentClass 无法转换为 Annotation,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54564247/

47 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com