2017-10-09 12 views
1

コンパイル時に上記のエラーが発生し、ソースファイルには移動しません。問題の原因となった変更をゆっくりと確認した後、明らかにダガー2の注入が問題を引き起こしていることがわかりました。エラー:NotNullにアクセスできない

@FragmentScope 
@Subcomponent 
public interface MyComponent { 
    void inject(MyJavaFragment myJavaFragment); 

    void inject(MyJavaClass myJavaClass); 

    void inject(MyKotlinClass myKotlinClass); // <- if change to Java, all works 
} 

MyKotlinClassをJavaコードからKotlinに変換してエラーが発生しました。これは、ライブラリ内にある、と私はすでにそのbuild.gradleで

kapt "com.google.dagger:dagger-compiler:$daggerVersion" 

なぜでしょうか? (注:アプリケーションコードは元々Javaだったので、必要がない限り、私はKotlinにすべて変更しなかった)。調査の長い時間後

答えて

2

は、まだ

annotationProcessor "com.google.dagger:dagger-compiler:$daggerVersion" 

アノテーション

を使用してでも、上記の質問で述べたように、私のライブラリは kaptを使用している、このライブラリの呼び出し機能、ということが分かりました。それは、使用される注釈プロセッサの衝突です。代わりに、Java注釈プロセッサが使用されていると思われます。呼び出し元のライブラリ注釈プロセッサを

kapt "com.google.dagger:dagger-compiler:$daggerVersion" 

に変更することで問題を解決できます。 (上部にapply plugin: 'kotlin-kapt'を追加することを忘れないでください)

関連する問題