2017-05-29 104 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