当前位置: 首页 > 知识库问答 >
问题:

更新到Kotlin 1.3.30 breaks build with Dagger 2.21

柳珂
2023-03-14
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.

我怀疑它与kotlin 1.3.30中最近的kapt更新有关:https://blog.jetbrains.com/kotlin/2019/04/kotlin-1-3-30-released/

尝试禁用/启用文章中的kapt选项,尝试分级清理,无效缓存,但没有任何帮助。只有降级到1.3.21项目成功构建。

共有1个答案

齐琦
2023-03-14

GitHub和YouTrack上已经有人报告了这个bug。一旦Kotlin版本1.3.31发布,这个问题就会得到解决。

更新:Kotlin 1.3.31已经发布,所以请确保更新您的Kotlin版本!

GitHub上列出的Kotlin 1.3.30的解决办法是使用Java注释代替viewmodelkey的Kotlin,或者您可以降级回Kotlin 1.3.21。

java prettyprint-override">/**
 * Workaround in Java due to Dagger/Kotlin not playing well together as of now
 * https://github.com/google/dagger/issues/1478
 */
@MapKey
@Documented
@Target({ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
public @interface ViewModelKey {
    Class<? extends ViewModel> value();
}

 类似资料:
  • 问题内容: 如何更新到Angular 5?这来自我的package.json: 当我运行npm install时,出现此错误 npm ERR!Windows_NT 6.1.7601 npm错误!argv“ C:\ Program Files \ nodejs \ node.exe”“ C:\ Program Files \ nodejs \ node_modules \ npm \ bin \ n

  • 不确定是不是因为okhttp版本,但我尝试了2.3.0和3.4.0之间的几个不同版本,但都不起作用。 有什么想法吗?提前谢了。

  • 我们在webapp中使用liquibase 3.0.8已经有一段时间了,数据库更新是由Spring-liquibase bean在应用程序启动时应用的。我们决定从3.1、3.1.1、3.2.0到3.2.3,逐步更新我们的开发数据库,此时更新失败,出现校验和验证错误。我们尝试恢复到3.2.0,但得到了一组不同的校验和错误。我还尝试从3.0.8直接转到3.4.1(编写时的当前版本),并得到相同的校验和

  • 3.8. 更新go到新版本 当有新版本发布的时候,会在Go Nuts邮件列表中通知。可以用以下命令获取最新的发布版本: $ cd go/src $ hg pull $ hg update release $ ./all.bash

  • null 我遇到了一些奇怪的例外 在login.jspx页面上提交简单表单后出现 LocaleFilter照常工作。 我认为配置有问题但找不到原因。 主pom.xml: web.xml null 我准备添加任何额外的信息,以找到这种情况的原因。我希望有人能帮我找到解决这个问题的方法,因为谷歌并不知道这个问题。任何帮助都是有用的。

  • 我遇到了非常奇怪的情况。我成功地将Android SDK工具更新到版本22.6.1。现在当我启动ADT(Eclipse)时,它会向我显示一条消息,上面写着以下内容。 当我按下“检查更新”按钮时,Eclipse会显示一条消息,上面写着“未找到更新”消息。如果我通过帮助-检查更新执行此操作,结果相同。 如果我打开Help-Install New Software并选择Developer Tools U

  • 问题内容: 我是java的新手,我被困在这里…我要做的是将一个java文件中arraylist的更改更新为另一个文件中的JPanel。我正在对arraylist进行排序,因此无法手动完成。有什么办法可以让我“告诉” JPanel痛楚吗? 我有进行排序(工作)的BubbleSort.java,有包含JPanel和JFrame类(用于显示未排序的直方图的工作)的Animation.java。 这是家庭

  • 问题内容: 我在安装项目时遇到了一些问题。 我拥有运行 Swift 3* 的最新版本的 Xcode ,并且当我尝试安装alamofire时遇到800个编译器错误。 * 显然地 构建Alamofire 4.0.0+需要CocoaPods 1.1.0+ 我看着终端机上的CocoaPods版本,它说我的版本是1.0.1。 我猜运行更新没有用,因为CocoaPods 1.1是beta版。 因此,我不确定如