簡體   English   中英

在 Android 工作室中沒有依賴解決匕首生成的注釋

[英]No dependency is solving dagger's generated anotation in Android studio

我想使用 Java 11,我也使用了許多依賴項,包括匕首

 // Dagger
implementation "com.google.dagger:dagger:$daggerVersion"
implementation "com.google.dagger:dagger-android:$daggerVersion"
implementation "com.google.dagger:dagger-android-support:$daggerSupportVersion"
kapt "com.google.dagger:dagger-android-processor:$daggerSupportVersion"
kapt "com.google.dagger:dagger-compiler:$daggerCompilerVersion"

現在,當我運行項目時,我收到此錯誤:

 /app/dagger/module/ActivityModule_ProvideStatsActivityViewModelFactory.java:6: error: package javax.annotation.processing does not exist
import javax.annotation.processing.Generated;  import javax.annotation.processing.Generated;
                              ^

在搜索和實施許多答案后仍然無法解決此錯誤。

我試着一步一步地把所有的東西加在一起。

    implementation('javax.xml.bind:jaxb-api:2.3.1')
    implementation('javax.activation:activation:1.1')
    implementation('org.glassfish.jaxb:jaxb-runtime:2.3.2')


    implementation "jakarta.xml.bind:jakarta.xml.bind-api:2.3.2"
    implementation "org.glassfish.jaxb:jaxb-runtime:2.3.2"


    implementation 'javax.xml.bind:jaxb-api:2.3.1'


    implementation 'javax.annotation:javax.annotation-api:1.3.2'
    kapt 'javax.annotation:javax.annotation-api:1.3.2'

    compileOnly 'org.glassfish:javax.annotation:10.0-b28'

根據此答案所述,問題的根本原因是在 JDK 9+ 上使用代碼生成時未找到文件Generated.java

解決方案是使用此依賴項: https://github.com/pengrad/jdk9-deps這是 compileOnly 依賴項,或者使用以下解決方案:

  1. 在src/main下創建package(項目源碼)

    項目源代碼中的src/main/javax.annotation.processing

  2. 將下面的文件內容放在創建的 package 下:

生成的.java

 package javax.annotation.processing; public @interface Generated { String[] value(); String date() default ""; String comments() default ""; }

這將解決在 android 項目中編譯期間 dagger 的問題。

error: package javax.annotation.processing does not exist
import javax.annotation.processing.Generated;  import javax.annotation.processing.Generated;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM