okio.Base64.encode ArrayIndexOutOfBoundsException 为什么会发生这种情况?
okio.Base64.encode ArrayIndexOutOfBoundsException why is that even happening?
我注意到 fabric 中有这样的异常,这种异常很少发生,但在每次构建时,每周 2-3 个用户(约 500 DAU)会发生 3-5 次崩溃
我没有找到有关此类崩溃的任何信息,有人知道是什么原因造成的吗?
我只找到一个关于此类问题的问题,但已被删除为 "duplicate"
Fatal Exception: java.lang.ArrayIndexOutOfBoundsException
length=1305; index=1953974520
okio.Base64.encode (Base64.java:137)
okio.Base64.encode (Base64.java:125)
okio.ByteString.base64 (ByteString.java:105)
okhttp3.Cache$Entry.writeCertList (Cache.java:686)
okhttp3.Cache$Entry.writeTo (Cache.java:645)
okhttp3.Cache.put (Cache.java:249)
okhttp3.Cache.access[=11=]0 (Cache.java:136)
okhttp3.Cache.put (Cache.java:148)
okhttp3.internal.cache.CacheInterceptor.maybeCache (CacheInterceptor.java:173)
okhttp3.internal.cache.CacheInterceptor.intercept (CacheInterceptor.java:143)
okhttp3.internal.http.RealInterceptorChain.proceed (RealInterceptorChain.java:92)
okhttp3.internal.http.RealInterceptorChain.proceed (RealInterceptorChain.java:67)
okhttp3.internal.http.BridgeInterceptor.intercept (BridgeInterceptor.java:93)
okhttp3.internal.http.RealInterceptorChain.proceed (RealInterceptorChain.java:92)
okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept (RetryAndFollowUpInterceptor.java:124)
okhttp3.internal.http.RealInterceptorChain.proceed (RealInterceptorChain.java:92)
okhttp3.internal.http.RealInterceptorChain.proceed (RealInterceptorChain.java:67)
更新:
https://github.com/square/okio/issues/325本期Okio票
https://issuetracker.google.com/issues/69364976 Google 本期票
更新 2:
已在 Android Studio 3.1 Canary 6 Build
中修复
这是 VM 或 VM 周围基础设施(CPU?内存?)中的错误。在 0 和数组长度之间循环的值 i
没有其他方法可以像这样越界。
这可能是从 11 月 8 日开始仅在 Android 5.1 上的特定设备的 VM 中的错误。
我们查明问题是使用dex编译器D8引起的。解决方案是通过以下行在 gradle.properties 中禁用它:android.enableD8=false
已在此处创建工单
它影响了除三星设备之外的几乎所有低成本手机
我注意到 fabric 中有这样的异常,这种异常很少发生,但在每次构建时,每周 2-3 个用户(约 500 DAU)会发生 3-5 次崩溃 我没有找到有关此类崩溃的任何信息,有人知道是什么原因造成的吗?
我只找到一个关于此类问题的问题,但已被删除为 "duplicate"
Fatal Exception: java.lang.ArrayIndexOutOfBoundsException
length=1305; index=1953974520
okio.Base64.encode (Base64.java:137)
okio.Base64.encode (Base64.java:125)
okio.ByteString.base64 (ByteString.java:105)
okhttp3.Cache$Entry.writeCertList (Cache.java:686)
okhttp3.Cache$Entry.writeTo (Cache.java:645)
okhttp3.Cache.put (Cache.java:249)
okhttp3.Cache.access[=11=]0 (Cache.java:136)
okhttp3.Cache.put (Cache.java:148)
okhttp3.internal.cache.CacheInterceptor.maybeCache (CacheInterceptor.java:173)
okhttp3.internal.cache.CacheInterceptor.intercept (CacheInterceptor.java:143)
okhttp3.internal.http.RealInterceptorChain.proceed (RealInterceptorChain.java:92)
okhttp3.internal.http.RealInterceptorChain.proceed (RealInterceptorChain.java:67)
okhttp3.internal.http.BridgeInterceptor.intercept (BridgeInterceptor.java:93)
okhttp3.internal.http.RealInterceptorChain.proceed (RealInterceptorChain.java:92)
okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept (RetryAndFollowUpInterceptor.java:124)
okhttp3.internal.http.RealInterceptorChain.proceed (RealInterceptorChain.java:92)
okhttp3.internal.http.RealInterceptorChain.proceed (RealInterceptorChain.java:67)
更新:
https://github.com/square/okio/issues/325本期Okio票 https://issuetracker.google.com/issues/69364976 Google 本期票
更新 2: 已在 Android Studio 3.1 Canary 6 Build
中修复这是 VM 或 VM 周围基础设施(CPU?内存?)中的错误。在 0 和数组长度之间循环的值 i
没有其他方法可以像这样越界。
这可能是从 11 月 8 日开始仅在 Android 5.1 上的特定设备的 VM 中的错误。
我们查明问题是使用dex编译器D8引起的。解决方案是通过以下行在 gradle.properties 中禁用它:android.enableD8=false
已在此处创建工单
它影响了除三星设备之外的几乎所有低成本手机