热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Dagger2:关于子组件的错​​误,但我的应用程序中没有任何子组件

如何解决《Dagger2:关于子组件的错​​误,但我的应用程序中没有任何子组件》经验,如何解决这个问题?

我正在尝试在我的应用中使用Dagger 2.我一直收到这个错误:

错误:任务':app:compileDebugJavaWithJavac'的执行失败.java.lang.IllegalArgumentException:@dagger.Module没有定义元素子组件()

我在应用程序中根本不使用子组件,因此我不知道为什么会发生此错误.我有一个模块和一个组件.模块:

@Singleton
@Module

public class ApplicationModule {

private final WSTApplication application;

public ApplicationModule(WSTApplication application) {
    this.application = application;
}

@Provides
public WSTApplication application() {
    return this.application;
}

@Provides
public Context applicationContext() {
    return this.application;
}

@Provides
Realm provideRealm() {
    return Realm.getDefaultInstance();
}

@Provides
RealmHelper providesRealmHelper(final Realm realm) {
    return new RealmHelper(realm);
}

@Provides
@Singleton
public WorkoutPresenter providesWorkoutPresenter(final RealmHelper helper) {
    return new WorkoutPresenter(helper);
}

}

我的组件:

@Singleton
@Component(modules={ApplicationModule.class})
public interface ApplicationComponent {

    void inject (MainActivity activity);

    WSTApplication application();

    Context applicationContext();

    Realm provideRealm();

    RealmHelper providesRealmHelper(Realm realm);

    WorkoutPresenter providesWorkoutPresenter(RealmHelper helper);

}

这是我的应用程序中的onCreate:

@Override
public void onCreate() {
    super.onCreate();

    compOnent= DaggerApplicationComponent.builder()
            .applicationModule(new ApplicationModule(this))
            .build();
}

我也不能让DaggerApplicationComponent停止变红,但我认为这是因为该项目实际上并没有因为这个奇怪的子组件错误而构建?我尝试使用下划线(Dagger_ApplicationComponent),但这没有帮助.

我试过谷歌,但我找到的只是如何在Dagger中使用子组件的指南,这不是我想要的.我不想使用子组件.我只想使用一个组件.

另外,万一这很重要,这就是我在build.gradle文件中添加的内容:

在项目内容中:

classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'

在应用程序级别build.gradle中:

apply plugin: 'com.neenbedankt.android-apt'

然后在依赖项中:

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })
    compile 'com.android.support:appcompat-v7:24.2.1'
    compile 'com.android.support:design:24.2.1'
    compile 'com.google.dagger:dagger:2.1'
    compile 'com.android.support:support-v4:24.2.1'
    testCompile 'junit:junit:4.12'
    apt 'com.google.dagger:dagger-compiler:2.7'
    provided 'org.glassfish:javax.annotation:10.0-b28'
}

感谢任何可以帮助我的人!我是Dagger2的新手,甚至在阅读了几本初学者指南之后,我仍然没有完全理解它(我希望尝试使用它会让事情变得更清楚......到目前为止,它很明显是一次漏油事件).提前抱歉我极有可能犯了一个愚蠢的初学者错误.


推荐阅读
author-avatar
殉情放开那只小兔子
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有