2017-09-20 4 views
-1

大ガジェット2.11でokhttp 3.8を使用していましたが、うまく機能します。私がokhttp 3.9に変更したときに、エラーが発生しました。javax.annotation.Nullableが見つかりませんでした。Dagger 2.11でOkHttp 3.9.0を使用する - なぜdagger-android2.xの依存関係を含める必要がありますか?

私はdagger-android2.xの依存関係を含めて試したところ、エラーを修正しました。

私は、DaggerActivityのようなクラスを使用したい場合や、アクティビティやフラグメントを注入する場合はdagger.androidパッケージを含める必要があることを理解しましたが、なぜDaggerで使用するためにOkHttpに含める必要がありますか?

編集:もう少し調査しました。 この変更はhttps://github.com/square/okhttp/commit/d4a9cf4772ae9d8991e58d934dea433798c9b8eb#diff-e88e53bd5c3b6fb1ba650f55b1261052R21

+ import javax.annotation.Nullable;

実装 'com.google.code.findbugs:JSR305:3.0.2' 修正するためのエラー

アップデート2:

私がいたが

はproblem.Iが含まれなければならなかったです私のwebsocketリスナーに注入しました。私は本当にやる必要はありませんでした。これにより、エラーjavax.annotation.Nullableが見つかりませんでした。 websocketlistenerにコードを挿入しないようにコードを変更しました。エラーはなくなり、追加の依存関係は必要ありません。エラーは完全に私の誤りでした。

+0

あなたは本当にDagger Androidパッケージを含める必要はありません。これは関連性のない問題のようです。 –

+0

間違いなく関連しています。私はキャッシュを無効にし、.gradleフォルダを削除し、生成されたコードをすべて削除しました。私はokhttpへの参照をすべて削除し、コードが含まれていない状態でコンパイルすることを確認しました。私は同じことをしましたが、まだokhttp3.8が含まれていました。私は同じことをやり直しましたが、今度はokhttp 3.9が含まれています。エラーが表示され、プロジェクトはコンパイルに失敗します。 – Chris

答えて

1

実際にはdagger-android2.xの依存関係を含める必要はありません。何が起こるかは、OkHttp 3.9がdagger-android2.x依存関係が内部的に使用するjavax.annotation.Nullableを使用するようになり、したがって、gradle mergeを通じてOkHttpでも利用可能になります。

あなたが指摘したように、compile 'com.google.code.findbugs:jsr305:3.0.2'をプロジェクトに追加するだけで十分です。

関連する問題