我注意到fabric中存在这样的异常,这种情况很少发生,但每次构建时,每周都有3-5个用户在2-3个用户(从~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本期谷歌机票
更新2:
在android studio 3.1canary 6版本中被修复
最佳答案
从11月8日开始,这可能只是Android 5.1上特定设备的虚拟机缺陷。
我们发现这个问题是由使用dex编译器d8引起的。解决方案是在gradle.properties中将其禁用:android.enabled8=false
票证已在此处创建
Okio issue tracker
它影响了几乎所有的低成本手机,不包括三星的设备