每当我的Android应用程序初始化kotlin类时,我都会看到崩溃。从堆栈跟踪中,我看到它来自BuiltInsLoader.Companion
对象的静态初始化器:
kotlin.collections.CollectionsKt ___ CollectionsKt.first (CollectionsKt___CollectionsKt.java:166) kotlin.reflect.jvm.internal.impl.builtins.BuiltInsLoader $伴侣。 (BuiltInsLoader.java:38) kotlin.reflect.jvm.internal.impl.builtins.BuiltInsLoader。 (BuiltInsLoader.java) kotlin.reflect.jvm.internal.impl.builtins.KotlinBuiltIns.createBuiltInsModule (KotlinBuiltIns.java:150) kotlin.reflect.jvm.internal.impl.platform.JvmBuiltIns。 (JvmBuiltIns.java:56) kotlin.reflect.jvm.internal.impl.platform.JvmBuiltIns。 (JvmBuiltIns.java:31) kotlin.reflect.jvm.internal.components.RuntimeModuleData $ Companion.create (RuntimeModuleData.java:54) kotlin.reflect.jvm.internal.KDeclarationContainerImpl $数据$ moduleData $ 2.invoke (KDeclarationContainerImpl.java:35) kotlin.reflect.jvm.internal.ReflectProperties $ LazySoftVal.invoke (ReflectProperties.java:93) kotlin.reflect.jvm.internal.ReflectProperties $ Val.getModuleData (ReflectProperties.java:32) kotlin.reflect.jvm.internal.KClassImpl $数据$ $描述2.invoke (KClassImpl.java:46) kotlin.reflect.jvm.internal.ReflectProperties $ LazySoftVal.invoke (ReflectProperties.java:93) kotlin.reflect.jvm.internal.ReflectProperties $ Val.getDescriptor (ReflectProperties.java:32) kotlin.reflect.jvm.internal.KClassImpl.getDescriptor (KClassImpl.java:172) kotlin.reflect.jvm.internal.KClassImpl.getConstructorDescriptors (KClassImpl.java:186) kotlin.reflect.jvm.internal.KClassImpl $数据$ $的构造2.invoke (KClassImpl.java:90) kotlin.reflect.jvm.internal.ReflectProperties $ LazySoftVal.invoke (ReflectProperties.java:93) kotlin.reflect.jvm.internal.ReflectProperties $ Val.create (ReflectProperties.java:32)
反编译的静态块如下所示:
BuiltInsLoader.Companion var0 = new BuiltInsLoader.Companion();
$$INSTANCE = var0;
ServiceLoader var10000 = ServiceLoader.load(BuiltInsLoader.class, BuiltInsLoader.class.getClassLoader());
Intrinsics.checkExpressionValueIsNotNull(var10000, "ServiceLoader.load(Built…::class.java.classLoader)");
Object var1 = CollectionsKt.first((Iterable)var10000);
还有其他人遇到过此次崩溃吗?如果是这样,你如何解决这个初始化错误?
答案 0 :(得分:3)
如果在运行时缺少kotlin-reflect
正常工作所需的某个资源文件,则会发生此异常。该文件位于META-INF/services/kotlin.reflect.jvm.internal.impl.builtins.BuiltInsLoader
。请确认在构建过程中没有工具将其删除,并且它会出现在最终应用程序中。
Kotlin追踪器中的相关问题:https://youtrack.jetbrains.com/issue/KT-20575
答案 1 :(得分:0)
也许:
packagingOptions {
exclude 'META-INF/services/kotlin.reflect.jvm.internal.impl.builtins.BuiltInsLoader'
}
可能会帮助