Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 更新至Kotlin 1.3.30使用Dagger 2.21打断构建_Android_Kotlin_Dagger 2_Dagger - Fatal编程技术网

Android 更新至Kotlin 1.3.30使用Dagger 2.21打断构建

Android 更新至Kotlin 1.3.30使用Dagger 2.21打断构建,android,kotlin,dagger-2,dagger,Android,Kotlin,Dagger 2,Dagger,从1.3.21更新到1.3.30后生成错误: AppComponent.java:16: error: [Dagger/MissingBinding] java.util.Map<java.lang.Class<? extends androidx.lifecycle.ViewModel>, javax.inject.Provider<androidx.lifecycle.ViewModel>> cannot be provided

从1.3.21更新到1.3.30后生成错误:

AppComponent.java:16: error: [Dagger/MissingBinding]    
   java.util.Map<java.lang.Class<? extends androidx.lifecycle.ViewModel>,
   javax.inject.Provider<androidx.lifecycle.ViewModel>> 
   cannot be provided without an @Provides-annotated method.
AppComponent.java:16:错误:[Dagger/MissingBinding]

java.util.Map这个bug已经有人报告过了。一旦Kotlin版本1.3.31发布,这应该得到修复

更新:Kotlin 1.3.31已过期,请确保更新您的Kotlin版本


GitHub上列出的Kotlin 1.3.30的解决方法是在
ViewModelKey
中使用Java注释而不是Kotlin,或者您可以降级回Kotlin 1.3.21

/**
*由于Dagger/Kotlin目前还不能很好地配合使用,Java中的解决方法
* https://github.com/google/dagger/issues/1478
*/
@地图键
@记录
@目标({ElementType.METHOD})
@保留(RetentionPolicy.RUNTIME)
public@interface ViewModelKey{
类
升级
并升级到最新版本

注释类
应该可以工作

目前最新版本为:-

匕首版:-
2.23.2


Kotlin版本:-
1.3.41

这是一个谦虚的请求,希望社区能够帮助解决这个问题。也许有人已经解决了这个问题。将Kotlin版本降级为
1.3.21
,只需使用java类即可…你救了我。仅供参考:1.3.31没有帮我解决它。我仍然需要使用Java解决方法。@Forke很有意思。我之前只是快速尝试了一下,它似乎对我有效。您是否进行了干净的生成并清除了生成缓存?可能是缓存问题,也可能是完全不同的问题。我安装新版本时出错,但将旧版本保留在gradle文件中。现在可以使用。感谢您的帮助更新!