2017-11-30 4 views
0

Dagger 2でAndroid用の簡単なアプリケーションを作成します。これには共有オブジェクトとモジュールが1つあります。モジュールは:JavaからKotlinへの変換後にDaggerのモジュールが動作しない

@Module 
public class MyModule { 
    @Provides 
    @Singleton 
    public Hren providesHren() { 
     return new Hren(); 
    } 
} 

このモジュールが動作します。変換後

> Task :app:compileDebugJavaWithJavac 
...../DaggerMyApplicationComponent.java:26: error: cannot find symbol 
     DoubleCheck.provider(MyModule_ProvidesHrenFactory.create(builder.myModule)); 
          ^
    symbol: variable MyModule_ProvidesHrenFactory 
    location: class DaggerMyApplicationComponent 
1 error 

このモジュール::私はKotlinに変換する場合でも、私は時間のコンパイルエラー取得

@Module 
class MyModule { 
    @Provides 
    @Singleton 
    fun providesHren(): Hren { 
     return Hren() 
    } 
} 

間違っているのですか?なぜこのエラーが出るのですか?の解き方?

+0

プロジェクトをクリーン&それを再構築したのか? – LunaVulpo

答えて

1

Kotlinでアノテーションをサポートするようにプロジェクトを正しく設定していることを確認してください。あなたのbuild.gradle(Module:app)ファイルで

、あなたは以下の設定を適用していることを確認してください。きれいな、そして、

  • apply plugin: 'kotlin-kapt'
  • kapt "com.google.dagger:dagger-compiler:dagger_version"
  • kapt "com.google.dagger:dagger-android-processor:dagger_version"

をして、プロジェクトの再構築:

  • ./gradlew clean && ./gradlew build
+0

うん、私は 'annotationProcessor'はJavaソースのみで動作することを忘れていました.Kotlinには' kapt'が必要です。ありがとうございました。 – tse

関連する問題