2017-08-28 1 views
0

にDispatchTaskの変換時には、ArrayIndexOutOfBoundsException:Kotlin:私たちは、生産に私たちの最初のKotlinの作品をリリースしているし、我々はこのスタックトレースでクラッシュを取得している文字列

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) 

Googleは、これはAndroidの5 Crashlyticsに100%に起こっている私たちを見ます/ FabricはAndroid 4.4からの2つのクラッシュも表示します。新しいAndroidバージョンからのクラッシュはありません。

私はこのクラッシュを防ぐために、どのようにするかを複製する方法は考えています。

最新版:

  • org.jetbrains.kotlinx:kotlinx-コルーチンコア:0.16
+0

あなたのループのコードを投稿してください。 –

+0

私はそれが何を意味するか分かりません。 Kotlinで書かれたサイクル/ループのコードですか? – hrach

+0

まず、アプリをプルします。クラッシュを解決したら、プロダクションにリリースします。二番目。好ましくはデバッグでエラーを再現するが、プロダクションビルドのlogcatやその他のツールは(社内で)使用する。それが100%起こった場合、私はあなたが何を意味するのか理解していません...複製する方法はありません – Les

答えて

1

Kotlin反射のバグです。その間、私はkotlinx.coroutinesライブラリの最新バージョン(最新バージョンhereあるものを見つけることができます)にアップグレードすることをお勧めしたいです。バージョン0.17 DispatchTask.toString以降は、ラムダを文字列に変換しようとしません。実際にはtoStringの実装がより有用であり、デバッグの目的でより関連性の高い情報があります。

+0

ありがとう! 0.18を試してみます:-) – hrach

+0

アップグレード後にもうクラッシュしません、もう一度感謝します:) – hrach

関連する問題