2017-11-14 1 views
2

거의 발생하지 않지만 모든 빌드에서 2-3 명의 사용자 (매주 ~ 500 DAU)에서 3-5 일마다 충돌이 발생합니다. 그런 충돌에 대한 정보를 찾지 못했습니다. 그게 원인이야?okio.Base64.encode ArrayIndexOutOfBoundsException 왜 그런 일이 발생합니까?

나는 그런 문제에 대한 하나의 질문을 찾았지만 같이 삭제 "중복"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) 

UPDATE :

이 문제를 이것에 대한 https://issuetracker.google.com/issues/69364976 구글 티켓 https://github.com/square/okio/issues/325 Okio 티켓 문제

업데이트 2 : 이 Android Studio 3.1에서 수정되었습니다. Canary 6 Build

+0

질문을 downvote 경우 - 적어도 이유를 적어 둡니다. –

+0

'나는 그러한 예외를 발견했습니다. ' 예외에 대해 말하면 적어도 어느 것이 언급되는지. – greenapps

+1

https://github.com/square/okio/issues/325 –

답변

2

Android 5.1에서만 11 월 8 일부터 특정 기기에서 발생하는 VM의 버그 일 가능성이 큽니다.

우리는 문제가 dex 컴파일러 D8 사용으로 인해 발생한다는 것을 발견했습니다. 이 솔루션은이 선으로 gradle.properties에서 사용하지 않도록하는 것입니다 android.enableD8 그것은 삼성 기기를 제외한 거의 모든 저가 폰에 영향을 미치는

Okio issue tracker

여기에 이미 생성 된 = 거짓

티켓

2

VM 또는 VM 주변 인프라 (CPU?, 메모리?)의 버그입니다. 값이 i 인 다른 방법은 없습니다. 0과 배열 길이 사이의 루프는 이와 같은 범위를 벗어날 수 있습니다.

관련 문제