Kotlin:ArrayIndexOutOfBoundsException在将DispatchTask转换为字符串期间

我们已经发布了我们的第一个Kotlin作品,我们遇到了这个stacktrace的崩溃:

Fatal Exception: java.lang.ArrayIndexOutOfBoundsException: length=0; index=0 at kotlin.jvm.internal.ReflectionFactory.renderLambdaToString(ReflectionFactory.java:47) at kotlin.jvm.internal.Reflection.renderLambdaToString(Reflection.java:80) at kotlin.jvm.internal.Lambda.toString(Lambda.kt:22) at java.lang.StringBuilder.append(StringBuilder.java:202) at kotlinx.coroutines.experimental.DispatchedContinuation.toString(CoroutineDispatcher.kt:192) at java.lang.StringBuilder.append(StringBuilder.java:202) at kotlinx.coroutines.experimental.DispatchTask.toString(CoroutineDispatcher.kt:124) at java.lang.StringBuilder.append(StringBuilder.java:202) at android.os.Looper.loop(Looper.java:160) at android.app.ActivityThread.main(ActivityThread.java:5637) at java.lang.reflect.Method.invoke(Method.java) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:960) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755) 

谷歌向我们展示了Android5上的这种情况。Crashlytics / Fabric也显示了Android 4.4的两个崩溃。 没有更新的Android版本崩溃。

我不知道如何防止这个崩溃或如何复制它。

当前版本:

  • org.jetbrains.kotlinx:kotlinx协同程序核心:0.16

这是Kotlin反射中的一个错误。 同时,我建议升级到最新版本的kotlinx.coroutines库(你可以在这里找到最新的版本)。 从版本0.17 DispatchTask.toString不会尝试隐藏lambda字符串了。 这是toString实现现在实际上更有用,并有更多的相关信息用于调试目的。