6

我在我的项目中使用 org.jetbrains.kotlin:kotlin-reflect 库(包含在 gradle 依赖项中)。

该应用程序一直运行没有任何问题,但是在将 android gradle 插件升级到最新版本 3.1.0 后,该应用程序开始在一台设备(Nexus 5、Android 4.4.3)上崩溃。日志如下:

E/AndroidRuntime: FATAL EXCEPTION: kotlin.jvm.KotlinReflectionNotSupportedError: 在运行时找不到 Kotlin 反射实现。确保在 kotlin.jvm.internal.ClassReference.getSimpleName(ClassReference.kt:23) 的 kotlin.jvm.internal.ClassReference.error(ClassReference.kt:86) 的类路径中有 kotlin-reflect.jar

我认为这不是预期的行为,但也许有人找到了解决方法/解决方案?

现在我被迫将 android gradle 插件降级到 3.0.1 以防止应用程序崩溃。

=====================

我试图重新创建导致崩溃的环境,但是我没有设法重现崩溃。因为这只发生在较旧的android版本(pre-L)上并且在升级引入了一些dex优化的android gradle插件之后,我的猜测是它在某种程度上相关。

=====================

对于那些将此问题标记为重复的人

我不确定是否可以更清楚地说明这一点:其他票是关于缺少依赖的。我的 build.gradle 中有 kotlin-reflect 依赖项。此外,我的应用程序适用于更高的 Android 版本以及将 android gradle 插件降级到 3.0.1 之后。由于缺少依赖项,这不适用于任何版本的 android gradle 插件。因此,其他问题的答案对此问题无效。

4

1 回答 1

4

添加行以gradle.properties解决问题:

android.enableD8MainDexList=false

此外,插件版本中的错误似乎消失了3.2.0-alpha11

资料来源:

于 2018-04-17T22:44:39.917 回答