2017-02-08 5 views
1

Dagger2はDagger *クラスを作成しません。インターフェイスMyContainerComponentを作成しましたが、クラスDaggerMyContainerComponentは作成されませんでした。Dagger2はDaggerクラスを生成しません

buildscript { 
    repositories { 
     jcenter() 
     mavenCentral() 
    } 
    dependencies { 
     classpath 'com.android.tools.build:gradle:2.2.3' 
     classpath "com.android.databinding:dataBinder:1.0-rc4" 
     classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8' 
     classpath 'com.frogermcs.androiddevmetrics:androiddevmetrics-plugin:0.4' 
     classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.0.6" 
    } 
} 

allprojects { 
    repositories { 
     jcenter() 
     mavenCentral() 
    } 
} 

task clean(type: Delete) { 
    delete rootProject.buildDir 
} 
build.gradleに

apply plugin: 'com.android.application' 
apply plugin: 'android-apt' 
apply plugin: 'com.android.databinding' 
apply plugin: 'kotlin-android' 
apply plugin: 'com.frogermcs.androiddevmetrics' 

android { 
    compileSdkVersion 25 
    buildToolsVersion "25.0.2" 
    defaultConfig { 
     applicationId "com.tegra.module.profile" 
     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' 
     } 
    } 
    sourceSets { 
     main.java.srcDirs += 'src/main/kotlin' 
    } 
} 

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    compile 'com.android.support:appcompat-v7:25.1.1' 
    testCompile 'junit:junit:4.12' 
    compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" 

    kapt 'com.android.databinding:compiler:1.0-rc4' 

    //dagger 
    compile 'com.google.dagger:dagger:2.8' 
    apt 'com.google.dagger:dagger-compiler:2.8' 
    provided 'javax.annotation:jsr250-api:1.0' 

    //glide 
    compile 'com.github.bumptech.glide:glide:3.7.0' 

    //rxAndroid 
    compile 'io.reactivex:rxandroid:1.2.1' 
    compile 'io.reactivex:rxjava:1.1.6' 

    //autoFactory 
    compile group: 'com.google.auto.factory', name: 'auto-factory', version: '1.0-beta3' 

    //retrofit 
    compile 'com.squareup.retrofit2:retrofit:2.1.0' 
    compile 'com.squareup.retrofit2:converter-gson:2.1.0' 
    compile group: 'com.squareup.retrofit2', name: 'adapter-rxjava', version: '2.1.0' 

    //OkHttp 
    compile 'com.squareup.okhttp3:logging-interceptor:3.3.1' 

    //timber 
    compile 'com.jakewharton.timber:timber:4.5.1' 

    //stetho 
    compile 'com.facebook.stetho:stetho:1.4.2' 
    compile 'com.facebook.stetho:stetho-okhttp3:1.4.2' 

    //constraint-layout 
    compile 'com.android.support.constraint:constraint-layout:1.0.0-beta4' 
} 

kapt { 
    generateStubs = true 
} 

MyContainerComponent.kt

package com.tegra.module.profile.ioc 

@Component(modules = arrayOf(ProfileModule::class)) 
@Singleton 
public interface MyContainerComponent { 
    fun inject(profileActivity: ProfileActivity) 
} 

ProfileModule.kt

package com.tegra.module.profile.bl.di 

@Module 
class ProfileModule(val application: Application) { 

    @Provides 
    @Singleton 
    fun provideApplication(): Application { 
     return application 
    } 

    @Provides 
    @Singleton 
    fun provideContext(): Context { 
     return application 
    } 
} 

どのような解決策ですか?既にグラッドバージョンの変更、クリーン、再構築、依存バージョンの変更、Gradleキャッシュの削除、Android Studioの再インストールを試みました。また、

kapt 'com.google.dagger:dagger-compiler:2.8' 

kaptがあまりにもJavaでのアノテーションを処理するため、すべてのaptの依存関係を削除します。あなたはダガーコンパイラのkaptを使用する必要がKotlinファイルにダガー注釈を使用するためには

答えて

4
+2

参照ドキュメント:https://kotlinlang.org/docs/reference/using-gradle.html#annotation-processing 'kotlin-android'を使用している場合 –

+0

はまた'アンドロイド-apt'を適用しません – EpicPandaForce

関連する問題