Dagger 2,没有得到组件实例

问题描述 投票:1回答:1

尝试用这个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'

}

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

android dagger-2
1个回答
3
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.