2017-05-29 102 views
9

當我添加以下代碼中的錯誤來了:IncompleteAnnotationException:dagger.Provides缺少元素類型

@Singleton @Provides fun provideGson() : Gson { 
    return Gson() 
} 

我真的不知道爲什麼。

+0

你得到的問題是什麼 – Nithinlal

+0

對我來說沒有repro,你使用哪個版本的匕首? –

+0

dagger2.0當我加起來的代碼,錯誤是IncompleteAnnotationException:dagger.Provides缺少元素類型 – wall

回答

3

我在我們的項目中遇到了完全相同的問題。在我的情況下,它是由Dagger2 API的變化引起的:Dagger2開發者have removedtype參數來自注釋@Provides

我不小心使用舊版本的Dagger2編譯器使用了新的不兼容的註釋依賴版本(註釋中沒有type字段)。看起來,與引起各種運行時間的某些其他類型的二進制不兼容性不同,在內省期間與不兼容註釋的鏈接可能導致IncompleteAnnotationException

將dagger2編譯器更新爲與註釋相同的版本修復了問題。

+0

請你詳細說明更多?我正在用Kotlin(kapt)使用Dagger 2,但不知道哪兩個版本可以匹配。謝謝! – wkarl

+0

好吧,終於得到它建立:更新匕首後2.12(從2.8)一切工作正常。謝謝,如果沒有你的提示,我會浪費更多的時間。 – wkarl