当前位置:  开发笔记 > 编程语言 > 正文

Dagger 2不会生成组件

如何解决《Dagger2不会生成组件》经验,为你挑选了1个好方法。

非Android应用程序中我完全厌倦了Dagger 2 (IDE是IntelliJ IDEA).

的build.gradle

buildscript {
    repositories {
        maven {
            url "https://plugins.gradle.org/m2/"
        }
    }
    dependencies {
        classpath "net.ltgt.gradle:gradle-apt-plugin:0.9"
    }
}

apply plugin: 'java'
apply plugin: 'net.ltgt.apt'

dependencies {
    compile 'com.google.dagger:dagger:2.8'
    apt 'com.google.dagger:dagger-compiler:2.8'
    compileOnly 'javax.annotation:jsr250-api:1.0'
}

零件

@Component(modules = {MyModule.class}) public interface MyComponent {}

@Module class MyModule {}

主要

DaggerMyComponent component = DaggerMyComponent.builder().build();

编译说

找不到符号DaggerMyComponent

绝对没有更多的想法可能是错的:(

顺便说一句,如果我跑gradlew clean build --refresh-dependencies,没有错误,一切都很好!

但是因为我只在IDE中使用"重建项目" - 再次出错.可能是IDEA错误(回到Eclipse的时间)?

是的,我已经添加了生成的类作为内容根目录,因此IDE可以看到DaggerMyComponent.



1> Alexey..:

我已将问题发布到JetBrains

https://youtrack.jetbrains.com/issue/IDEA-169387

而解决方案是在第一个评论.

如果将IntelliJ内部编译器用于项目构建,则需要在File |中启用注释处理 设置| 构建,执行,部署| 编译器| 注释处理器

作为替代方案,您可以将构建/运行IDE操作委派给gradle.您可以在File |中找到该选项 设置| 构建,执行,部署| 构建工具| Gradle | 跑步者

在构建171.4073.35中 Delegate IDE build/run actions to gradle,默认设置选项.

推荐阅读
农大军乐团_697
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有