Добрый день.
Обновили градл на приложении. Выпустили с 50% охватом. Часть пользователей(достаточно малая и на версии 5.1) ругались на ошибку.
при запуске приложения происходит запрос к серверу на получение регионов. На большинстве устройств все отлично. Но на некоторых китайских(может не только, но воспроизвели только на китайце) на запросе получаем такую ошибку
java.lang.reflect.UndeclaredThrowableException
at $Proxy2.getRegions(Unknown Source)
at com.test.apk.c.e$1.a(TaskManagerRegion.java:40)
at com..test.apk.c.e$1.call(TaskManagerRegion.java:37)
at bolts.f$6.run(Task.java:249)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:818)
at com.test.apk.util.h$1.run(PriorityThreadFactory.java:43)
Caused by: java.lang.Exception: retrofit.RetrofitError: length=2048; index=317205120
at com.test.apk.server.a.handleError(CustomErrorHandler.java:22)
at retrofit.RestAdapter$RestHandler.invoke(RestAdapter.java:242)
at java.lang.reflect.Proxy.invoke(Proxy.java:397)
at $Proxy2.getRegions(Unknown Source)
at com.test.apk.c.e$1.a(TaskManagerRegion.java:40)
at com.test.apk.c.e$1.call(TaskManagerRegion.java:37)
at bolts.f$6.run(Task.java:249)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:818)
at com.test.apk.util.h$1.run(PriorityThreadFactory.java:43)
Caused by: retrofit.RetrofitError: length=2048; index=317205120
at retrofit.RestAdapter$RestHandler.invokeRequest(RestAdapter.java:400)
at retrofit.RestAdapter$RestHandler.invoke(RestAdapter.java:240)
at java.lang.reflect.Proxy.invoke(Proxy.java:397)
at $Proxy2.getRegions(Unknown Source)
at com.test.apk.c.e$1.a(TaskManagerRegion.java:40)
at com.test.apk.c.e$1.call(TaskManagerRegion.java:37)
at bolts.f$6.run(Task.java:249)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:818)
at com.test.apk.util.h$1.run(PriorityThreadFactory.java:43)
Caused by: java.lang.ArrayIndexOutOfBoundsException: length=2048; index=317205120
at b.b.a(Base64.java:137)
at b.b.a(Base64.java:125)
at b.f.b(ByteString.java:104)
at com.squareup.okhttp.Cache$Entry.writeCertList(Cache.java:644)
at com.squareup.okhttp.Cache$Entry.writeTo(Cache.java:608)
at com.squareup.okhttp.Cache.put(Cache.java:239)
at com.squareup.okhttp.Cache.access$000(Cache.java:131)
at com.squareup.okhttp.Cache$1.put(Cache.java:142)
at com.squareup.okhttp.internal.http.HttpEngine.maybeCache(HttpEngine.java:404)
at com.squareup.okhttp.internal.http.HttpEngine.readResponse(HttpEngine.java:647)
at com.squareup.okhttp.Call.getResponse(Call.java:287)
at com.squareup.okhttp.Call$ApplicationInterceptorChain.proceed(Call.java:243)
at com.squareup.okhttp.Call.getResponseWithInterceptorChain(Call.java:205)
at com.squareup.okhttp.Call.execute(Call.java:80)
at retrofit.client.OkClient.execute(OkClient.java:53)
at retrofit.RestAdapter$RestHandler.invokeRequest(RestAdapter.java:326)
at retrofit.RestAdapter$RestHandler.invoke(RestAdapter.java:240)
at java.lang.reflect.Proxy.invoke(Proxy.java:397)
at $Proxy2.getRegions(Unknown Source)
at com.test.apk.c.e$1.a(TaskManagerRegion.java:40)
at com.test.apk.c.e$1.call(TaskManagerRegion.java:37)
at bolts.f$6.run(Task.java:249)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:818)
at com.test.apk.util.h$1.run(PriorityThreadFactory.java:43)
Пробовали ревертнуть изменения по градлу - ошибка все равно повторяется.
Пробовали на китайце запустить в дебаге - ошибка не повторяется. Установка через adb не подписанной версии - ошибка не повторяется. Подписываем apk, устанавливаем - ошибка сразу появляется..
Спасибо