2017-08-28 52 views
0

我们已经发布了我们第一件科特林投入生产,我们这个堆栈跟踪越来越崩溃:科特林:ArrayIndexOutOfBoundsException异常时DispatchTask转换为字符串

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) 

谷歌告诉我们这是发生在100%在Android 5. Crashlytics/Fabric还显示了Android 4.4的两个崩溃。没有更新的Android版本崩溃。

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

当前版本:

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

请张贴您的循环代码。 –

+0

我不确定你是什么意思。你的意思是用Kotlin编写的循环/循环代码吗? – hrach

+0

首先,拉应用程序。一旦你解决了崩溃,然后释放到生产。第二。最好在调试时重现错误,但在生产版本(内部)中使用logcat和其他工具。如果它发生100%,那么我不明白你的意思是“不知道如何...复制” – Les

回答

1

也就是说在科特林反射的错误。同时,我建议升级到最新版本的kotlinx.coroutines库(你可以找到最新版本here)。由于版本0.17 DispatchTask.toString不会尝试隐藏lambda字符串了。这是toString实现现在实际上更加有用,并具有更多用于调试目的的相关信息。

+0

谢谢!将尝试0.18 :-) – hrach

+0

升级后没有更多的崩溃,再次感谢:) – hrach

相关问题