Android:将 LinearLayoutManager 提供给回收者视图会导致解析失败:Lkotlin/jvm/in



当我被告知这会导致java.lang.NoClassDefFoundError: Failed resolution of: Lkotlin/jvm/internal/Intrinsics;时,我只是在给RecyclerView一个LinearLayoutManager

这是有问题的代码:

var linearLayoutManager : LinearLayoutManager? = LinearLayoutManager(this)
messages.layoutManager = linearLayoutManager

在进一步检查扔给我的Error后,我被告知我的道路上缺少kotlin.jvm.internal.Intrinsics

无论我是否使用kotlin-kapt都会发生这种情况,顺便说一下,自从kapt使我的 Android 数据绑定陷入麻烦以来,我已经禁用了它。

然后,我重新启用kotlin-kapt并禁用了Android数据绑定,并相应地调整了布局。不过,没有这样的运气。

然后,我删除了我的Gradle缓存并重新启动了Android Studio。IDE 告诉我 Kotlin 现在在 1.2.71 上。尽管如此,kapt和Android数据绑定仍然相处不好。我收到相同的错误消息。

更新:我的 Kotlin Gradle 插件是 1.2.70,后来变成了 1.2.71。我也刚刚将我的Android Studio更新到3.2,我的Gradle插件更新到4.6(因此我的com.android.tools.build.gradle是3.2.0(同样的事情发生了。

我想知道我做错了什么。

尝试 messages.layoutManager = LinearLayoutManager(this( as RecyclerView.LayoutManager

问题实际上在于android.arch.lifecycle:extensions:1.1.1如何与dagger 2.17: https://github.com/google/dagger/issues/1245 相处。我通过以下方式解决了问题:

  1. 忽略包含我的ext的外部 Gradle 脚本文件,从而管理传统上使用我的build.gradle字符串文字的依赖项
  2. 根据此处链接中的建议将dagger依赖项和annotationProcessors降级到 2.16。

但是,我的 JVM可能存在潜在问题,因此,我正在考虑重新安装我的 JVM。

最新更新