Dagger 2:编译有时会失败

Dagger 2 : compilation fail sometimes

经过几个小时的头痛......我不得不问你们^^

获得了两个简单的 Dagger 2 组件,但它们都无法编译。但有时(我不明白为什么)它确实...... 这真的很烦人。

所以我想我应该漏掉一些东西,这里是错误:

错误:(18, 17) 错误:....如果没有 @Provides- 或 @Produces- 注释方法,则无法提供 InstanceContextService。 home.HomeActivity.mInstanceContextService [注入字段类型:....services.InstanceContextService mInstanceContextService]

所以我的评论是这样的:

@Component(modules = {InstanceContextModule.class})
@Singleton
public interface InstanceContextComponent {

    @Singleton
    void inject(HomeActivity activity);
    }

我的模块:

@Module
public class InstanceContextModule {

    @Provides
    @Singleton
    public InstanceContextService provideInstanceContext() {
        return new FileInstanceService();
    }
}

我在 gradle 中的配置是

apply plugin: 'com.android.application'
apply plugin: 'me.tatarka.retrolambda'
apply plugin: 'com.neenbedankt.android-apt'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.2"
//    compileOptions.incremental = false

    defaultConfig {
        applicationId "com.kayentis.ediary"
        minSdkVersion 17
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
    sourceSets {
        main {
            res.srcDirs = [
                    'src/main/res',
                    'src/main/res-main',
                    'src/main/res-message',
                    'src/main/res-account'
            ]
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:23.1.1'
    compile 'com.android.support:design:23.1.1'
    compile 'com.android.support:support-v13:23.1.+'
    compile 'com.google.code.gson:gson:2.1'
    //compile 'com.google.protobuf:protobuf-java:2.6.1'

    //Dagger 2
//    apt  'com.google.dagger:dagger-compiler:2.3'
//    compile 'com.google.dagger:dagger:2.3'
    apt 'com.google.dagger:dagger-compiler:2.0.2'
    compile 'com.google.dagger:dagger:2.0.2'
    provided 'org.glassfish:javax.annotation:10.0-b28'
    //Retrofit 2.0
    compile 'com.squareup.retrofit2:retrofit:2.0.0-beta4'
    //RxJava
    compile 'io.reactivex:rxjava:1.1.0'
    compile 'io.reactivex:rxandroid:1.1.0'
    //ButterKnife
//    compile 'com.jakewharton:butterknife:7.0.1'
}

我到处找,但我想我错过了什么... 提前致谢^^

找到解决方案。

有两个带有@singleton 作用域模块的组件,所以这行不通。现在它正在构建成功。