2017-09-20 104 views
-1

我使用okhttp 3.8和匕首2.11,它的效果很好。當我改爲okhttp 3.9時,我收到ERROR javax.annotation.Nullable not found。在Dagger 2.11中使用OkHttp 3.9.0 - 爲什麼我必須包含dagger-android2.x依賴項?

所以通過一些運氣,我嘗試了包括匕首android2.x依賴和修復錯誤。

我明白,如果你想使用像DaggerActivity這樣的類,或者如果你想注入活動或片段,你必須包含dagger.android包,但爲什麼我需要將它包含在OkHttp中才能與Dagger一起使用?

編輯:我做了一些更多的調查。 https://github.com/square/okhttp/commit/d4a9cf4772ae9d8991e58d934dea433798c9b8eb#diff-e88e53bd5c3b6fb1ba650f55b1261052R21

+ import javax.annotation.Nullable;

是疑難問題必須包括:

實行 'com.google.code.findbugs:JSR305:3.0.2' 修復錯誤

更新2:

我注入我的websocket監聽器中,我真的不需要這樣做。這導致未找到ERROR javax.annotation.Nullable。我改變了我的代碼,不注入websocketlistener,錯誤消失了,不需要額外的依賴,錯誤完全是我的錯。

+0

你真的不必包括匕首Android包,這好像是一些無關的問題 –

+0

它的確有關係。我無效緩存,刪除.gradle文件夾並刪除所有生成的代碼。我刪除了所有對okhttp的引用,並確認代碼編譯時沒有包含okhttp。然後我做了同樣的,但包括okhttp3.8仍然編譯好。我再次做了同樣的事情,但這次包括okhttp 3.9,並且出現錯誤,並且項目無法編譯。 – Chris

回答

1

您實際上不必包含dagger-android2.x依賴項。 OkHttp 3.9現在使用javax.annotation.Nullabledagger-android2.x依賴項在內部使用,因此,通過gradle合併也可用於OkHttp。

compile 'com.google.code.findbugs:jsr305:3.0.2'添加到您的項目應該足夠了,正如您所指出的那樣。

相關問題