亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

@Generated annotation 使用 gradlew + dagger

@Generated annotation 使用 gradlew + dagger

翻過高山走不出你 2022-01-06 18:56:12
我在使用 gradlew(4.10.2) + dagger(2.18) 時遇到了一個奇怪的問題。問題是當我打電話時:./gradlew :app:compileDebugAndroidTestKotlin構建失?。喝蝿?:Common:compileDebugJavaWithJavac FAILED/CommonModule_ProvidesGsonFactory.java:6: 錯誤:包 javax.annotation.processing 不存在導入 javax.annotation.processing。生成;/CommonModule_ProvidesGsonFactory.java:8: 錯誤:找不到符號@生成的(但是,如果我從 Android Studio運行該任務,則該任務會成功并且@Generated 不會出現在 dagger 生成的類中。您是否有一些線索可以避免使用@Generated注釋./gradlew?
查看完整描述

3 回答

?
喵喔喔

TA貢獻1735條經驗 獲得超5個贊

Dagger 使用auto-common'sGeneratedAnnotations來確定@Generated要使用哪個注釋。它根據類路徑執行此操作。

這意味著當注解處理器正在運行時,javax.annotation.processing.Generated在生成器中可用并使用,但是當生成的文件在另一個任務中編譯時,它不再在類路徑上。

潛在原因可能是代碼是使用較新版本的 JDK 生成的,并且增量構建無效,需要完整的“清理和重建”,或者注釋處理器在 Java 9+ 上運行的 Java 語言級別存在問題,但是android 被編譯為 Java 8 或更低版本。

使用./gradlew compileDebugAndroidTestKotlin -Dorg.gradle.java.home=<Android studio jre path>解決了問題。


查看完整回答
反對 回復 2022-01-06
?
紫衣仙女

TA貢獻1839條經驗 獲得超15個贊

如果你有 :


javax注解不存在


我在我的 macOS 上有這個問題,這個錯誤發生是因為你的 jdk 高于 1.8


只需在您的應用程序的 build.gradle 上添加以下代碼。


//Resolve jdk8+ Generation Annotations - javax annotation does not exist

compileOnly 'com.github.pengrad:jdk9-deps:1.0'


查看完整回答
反對 回復 2022-01-06
?
Cats萌萌

TA貢獻1805條經驗 獲得超9個贊

當我將 Android Studio 更新到 4.2 時遇到了這個問題

當我將 Kotlin 版本從 1.3.51 升級到 1.4.31時問題解決

似乎在這個問題中報告并解決了這個問題:


查看完整回答
反對 回復 2022-01-06
  • 3 回答
  • 0 關注
  • 461 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號