Android:将LinearLayoutManager赋予RecyclerView会导致以下问题的失败解析:Lkotlin / jvm / internal / Intrinsics

时间:2018-09-25 06:06:02

标签: android kotlin

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

这是有问题的代码:

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 Databinding仍然不相处。而且我收到相同的错误消息。

更新:我的Kotlin Gradle插件为1.2.70,后来变为1.2.71。我还刚刚将Android Studio更新为3.2,并将Gradle插件更新为4.6(因此,我的com.android.tools.build.gradle的版本为3.2.0)。

我想知道我在做错什么。

2 个答案:

答案 0 :(得分:0)

尝试将messages.layoutManager = LinearLayoutManager(this)用作RecyclerView.LayoutManager

答案 1 :(得分:0)

问题实际上是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。