Dagger 2 “Dagger” prefix component not able to compile? auto generated class

前端 未结 8 3777
悲哀的现实
悲哀的现实 2021-02-20 18:44

Im trying to use Dagger 2 on android. I previously had it working and i had an appModule injecting dependencies into specific classes in the app. My Issue is that iam getting th

相关标签:
8条回答
  • 2021-02-20 19:38

    Setting up a stand-alone project in Android Studio 2.3, I updated the default gradle files as follows to get the generated Component file. Added lines have comment // dagger2 addition

    PROJECT build.gradle:

    buildscript {
        repositories {
            jcenter()
        }
        dependencies {
            classpath 'com.android.tools.build:gradle:2.3.1'
    
            // dagger2 addition
            classpath 'com.android.tools.build:gradle:1.0.0'
            classpath 'com.neenbedankt.gradle.plugins:android-apt:1.+' 
    
            // NOTE: Do not place your application dependencies here; they belong
            // in the individual module build.gradle files
        }
    }
    
    allprojects {
        repositories {
            jcenter()
    
            // dagger2 addition
            mavenCentral()
            maven{
                url 'https://oss.sonatype.org/content/repositories/snapshots/'
            }
        }
    }
    
    task clean(type: Delete) {
        delete rootProject.buildDir
    }
    

    APP MODULE build.gradle:

    apply plugin: 'com.android.application'
    apply plugin: 'com.neenbedankt.android-apt'   // dagger2 addition
    
    android {
        compileSdkVersion 25
        buildToolsVersion "25.0.2"
        defaultConfig {
            applicationId "com.demo.dagger2demo"
            minSdkVersion 15
            targetSdkVersion 25
            versionCode 1
            versionName "1.0"
            testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        }
        buildTypes {
            release {
                minifyEnabled false
                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            }
        }
    }
    
    dependencies {
        compile fileTree(dir: 'libs', include: ['*.jar'])
        androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
            exclude group: 'com.android.support', module: 'support-annotations'
        })
        compile 'com.android.support:appcompat-v7:25.3.0'
        compile 'com.android.support.constraint:constraint-layout:1.0.2'
        testCompile 'junit:junit:4.12'
    
        // dagger2 addition
        compile 'com.google.dagger:dagger:2.+'
        apt "com.google.dagger:dagger-compiler:2.+"
    }
    
    0 讨论(0)
  • 2021-02-20 19:46

    Hope you all doing well. I was facing the same problem and spent a lot of time over stack overflow. At last I go through this and able to find solution. Briefly, You have to make some changes in your module level Gradle file. Please remove

    apply plugin: 'com.neenbedankt.android-apt'

    at the top of the file. And replace

    apt 'com.google.dagger:dagger-compiler:2.11'
    

    with

    annotationProcessor 'com.google.dagger:dagger-compiler:2.11'
    

    After that rebuild your project and you will be able to import your Dagger prefix classes. Hopw it will help you out.

    0 讨论(0)
提交回复
热议问题