2016-04-13 9 views
0

に失敗...私はみんな^^ダガー2:コンパイルが頭痛を取得し、多くの時間後に時々

お聞きし辞任しています2つの単純なダガー2のコンポーネントを得たが、それらの両方がコンパイルされません。しかし時には(私は理由を理解していない)時々... これは本当に迷惑です。

だから私は、私が何かを見逃しべきだと思い、ここにエラーがある:

エラー:(18、17)エラー:.... InstanceContextServiceが生成し、アノテーション付きメソッドの@ Provides-なしまたは@に提供することができません。 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(); 
    } 
} 

だから私のcompomentsはこのようなものです私の設定はグラデルで

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' 
} 
です

私はどこにでもいますが、私は何かが恋しいと思っています。 ありがとうございました^^

+0

、私はまだ1つのコンポーネントを削除してエラーが発生しましたが、私は生成されたクラスに行くことができます。したがって、クラスが生成されますが、コンパイルでjavaCで表示されないようです – McflyDroid

答えて

0

解決策を見つけました。

2つのコンポーネントが@singletonスコープのモジュールを持っていたので、これは機能しません。今、成功しています。コメントのために

+0

フィールド注入を使用する場合、コンポーネントは(モジュールから)注入するすべての依存関係を解決できる必要があります。 – EpicPandaForce

関連する問題