匕首2:有时编译失败

时间:2016-04-13 15:03:23

标签: android dagger-2

经过几个小时的头痛......我已经辞职了,问你们^^

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

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

错误:(18,17)错误:....如果没有@ Provide-或@ Produces-annotated方法,则无法提供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'
}

我到处寻找,但我想我想念一些...... 在此先感谢^^

1 个答案:

答案 0 :(得分:0)

找到解决方案。

有两个组件与@singleton作用域模块,所以这不起作用。现在它正在建设成功。