7

計測されたテストの場合、私はを作成してTestComponentを作成しますが、ファイルはもう生成されません(Error:/xxx/TestApplication.java:16: The import.xxx.DaggerTestApplicationComponent cannot be resolved)。私は根本的な原因を特定することができません。私は別のAndroid Studio(2.2、2.1.2)、異なるgradleプラグイン(2.2.0-alpha6,5,4)と異なるバージョンのdagger(2.2-2.6)を試しました。annotationProcessor + androidTest + dagger2

androidTestAnnotationProcessorを使用しますか?

編集(その前にケースではありませんでした):短剣2.6を使用するには、classpath 'com.google.guava:guava:19.0'

更新を追加する必要があります。Moduleに問題があった、それゆえComponentは作成できませんでした。しかし、ジャックを使用して(デバッグオプションでも)、私は問題を見ることができませんでした。今のところ、Java 7、gradle plugin 2.1.2に戻してください。そうすれば、グアバのバージョンと最新のすべてのlibsを指定する必要はありません(ダガー2.6、バターナイフ8.2.1、apt 1.8)

+0

コマンドラインで生成しようとしましたか?以前はダガーやテストファイルの生成に問題があったが、まだそれが当てはまるかどうかわからない。 – njzk2

+0

私はそうではなかった...しかし、ジャックを有効にした後に起こったと思われる。 – mbmc

答えて

9

ダガー2.9と同じ問題がありました。 compileDebugAndroidTestSourcesは正常に完了しましたが、Dagger*Componentは生成されませんでした。

androidTestAnnotationProcessor 'com.google.dagger:dagger-compiler:2.9'

を追加し、再びcompileDebugAndroidTestSourcesを実行します。私はこの質問に、最終的にいくつかの実験で上陸時間ほど苦労した後

は解決策を見つけました。グラフが正常であれば、ソースを生成する必要があります(成功するには、Dagger*Componentへの参照を一時的にコメントアウトする必要があります)。

あなたのグラフに問題がある場合(例えば@Providesの欠落)今は(タスクがエラーなしで完了しましたが、ソースが生成されていなかったところandroidTestAnnotationProcessorせずに前の状態のコントラストの)エラーが発生します

<rant>

私はダガーを愛していましたが、今ではそれが長い商業プロジェクトにとって大きなリスクになるいくつかの奇妙な問題があります。また、彼らはまだそれのためのまともなドキュメントを持っていないので、新しい開発者は非常に難しい学習。たぶん、Daggerのせいではなく、おそらくgradleとAndroid Studioが問題に取り組んでいるのかもしれないが、私は真剣にそれをダンプしようと考えている。

</rant>

+0

ビルドを実行すると動作しない。タスクビルドはcompileDebugAndroidTestSourcesを呼び出しますか? – Sunnyday

関連する問題