2017-08-28 51 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

相關問題