Dagger 2,没有得到组件实例

时间:2017-12-27 05:24:40

标签: android dagger-2

尝试使用此link1及此link2

了解Dagger2的实施情况

在最后的情况中,我们必须使用以下方法获取Compenent类的实例:当您尝试使用@Component注释创建接口的新对象时,必须使用前缀Dagger _

我正在尝试在我的班级中这样做,但文件显示无法找到班级。

VehicleComponent component = Dagger_VehicleComponent.builder().vehicleModule(new VehicleModule()).build();

无法获得Dagger_VehicleComponent类。

这是我的gradle文件:

    apply plugin: 'com.android.application'

android {
    compileSdkVersion 26
    defaultConfig {
        applicationId "com.vogella.android.tutsplusdagger"
        minSdkVersion 19
        targetSdkVersion 26
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.android.support:appcompat-v7:26.1.0'
    implementation 'com.android.support.constraint:constraint-layout:1.0.2'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.1'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'

    compile 'com.google.dagger:dagger-android:2.11'
    compile 'com.google.dagger:dagger-android-support:2.11' // if you use the support libraries
    annotationProcessor 'com.google.dagger:dagger-android-processor:2.11'
    annotationProcessor 'com.google.dagger:dagger-compiler:2.11'

    compile "com.google.dagger:dagger:2.11"
    annotationProcessor "com.google.dagger:dagger-compiler:2.11"
    provided 'javax.annotation:jsr250-api:1.0'
    compile 'javax.inject:javax.inject:1'

}

任何人都可以帮助解决这个问题的原因。

1 个答案:

答案 0 :(得分:3)

Dagger在构建项目时构建中间类。因此,您必须在添加组件或模块之前构建项目。否则,将找不到您的构建组件。它也是DaggerVehicleComponent

Dagger_VehicleComponent瞬间