提问者:小点点

Dagger 2,有时在编译时我得到“找不到符号类DaggerApplicationComponent”


最近更新后Android Studio(2.0.7)(也许这是原因)有时在构建我得到那个错误。

想法是,通常编译进行得很顺利,但有时我得到匕首错误。

可能是在匕首配置问题?

错误本身:

执行任务:[: app:assembleDebug]

在3.719秒内完成66个类的增量编译。: app:compileDebugJavaWellJavac FAILED:app:compileRetrolambdaDebug

失败:构建失败,但出现异常。

>

  • 出了什么问题:task': app:compileDebugJavaWellJavac'执行失败。

    编译失败;有关详细信息,请参阅编译器错误输出。

    尝试:使用--stacktrace选项运行以获取堆栈跟踪。使用--info或--debug选项运行以获得更多日志输出。

    建造失败

    总时间:19.556秒
    谢谢。


  • 共3个答案

    匿名用户

    看起来和Gradle 2.10中添加的增量编译有关系

    我设法修复了它,将以下命令添加到gradle:

    -Pandroid.incrementalJavaCompile=false
    

    您可以在Android Studio中添加它:文件|设置|构建、执行、部署|编译器将其添加为命令行选项。

    编辑2.0.0-beta3插件给出一个警告,告诉你这个选项已添加到GradleDSL:

    android {
        compileOptions.incremental = false
    }
    

    匿名用户

    我使用的是纯JavaLibrary模块,但使用的是kotlin插件和dagger依赖项,如下所示:

    build. gradle

    apply plugin: 'kotlin'
    dependencies {
        implementation "com.google.dagger:dagger:2.22.1"
        kapt "com.google.dagger:dagger-compiler:2.22.1"
    }
    

    错误是,我错过了添加kotlin-kapt插件。所以,我的build. gradle文件最终是这样的:

    apply plugin: 'kotlin'
    apply plugin: "kotlin-kapt" // make sure you added this line
    
    dependencies {
        implementation "com.google.dagger:dagger:2.22.1"
        kapt "com.google.dagger:dagger-compiler:2.22.1"
    }
    

    匿名用户

    您需要更新dagger的版本2.11

    您的build. gradle的依赖项块应该如下所示。

    dependencies {
        // Other dependencies should go here
        compile "com.google.dagger:dagger:2.11"
        annotationProcessor "com.google.dagger:dagger-compiler:2.11"
        provided 'javax.annotation:jsr250-api:1.0'
        compile 'javax.inject:javax.inject:1'
    }
    

    希望这有帮助。