我在布料中发现了这样的例外,这种情况很少发生,但每次构建时,每周3-5次用户都会发生3-5次崩溃(从~500 DAU) 我没有找到有关此类崩溃的任何信息,有谁知道是什么原因造成的?
我发现只有一个关于此类问题的问题,但它被删除为"重复" https://stackoverflow.com/questions/45868217/arrayindexoutofboundsexception-trying-to-cache-certificate-list-in-okhttp3
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$000 (Cache.java:136)
okhttp3.Cache$1.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
中修复答案 0 :(得分:2)
虚拟机或虚拟机周围的基础设施(CPU?,内存?)中存在错误。没有其他方法在0和数组长度之间循环的值i
可以超出这样的范围。
答案 1 :(得分:2)
从11月8日开始,仅在Android 5.1上,特定设备上的VM可能存在错误。
我们发现问题是由使用dex编译器D8引起的。解决方案是通过以下行在gradle.properties中禁用它:android.enableD8 = false
此处已创建票证
它正在影响几乎所有低价手机,不包括三星设备