Сбой приложения при отображении рекламы в OnePlus 6 - PullRequest
0 голосов
/ 07 июня 2018

Мы опубликовали приложение в магазине Google Play, в котором можно показывать рекламу от Google DoubleClick for Publishers.

При определенных рекламных объявлениях приложение OnePlus 6 вылетает. Мы не получаем трассировку стекав наших отчетах о сбоях, но получаю журналы ошибок в консоли Google Play, как показано ниже.Мы уверены, что это вызвано рекламой, поскольку она появляется только в той версии, в которой есть реклама.Кроме того, сбой отображается во время показа объявления.

OnePlus 6 crash

В трассировке Google Play для каждого сбоя отображается следующий журнал:

*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
pid: 0, tid: 0 >>> com.myapp.app <<<

backtrace:
  #00  pc 000000000076eb50  /vendor/lib/libllvm-glnext.so (ShaderObjects::loadProgramBinary(CompilerContext*, void*, unsigned int, QGLC_LINKPROGRAM_RESULT*)+855)
  #01  pc 00000000006ddba5  /vendor/lib/libllvm-glnext.so (CompilerContext::loadProgramBinary(void*, unsigned int, QGLC_LINKPROGRAM_RESULT*)+108)
  #02  pc 000000000077fb73  /vendor/lib/libllvm-glnext.so (QGLCLoadProgramBinary(void*, void*, unsigned int, QGLC_LINKPROGRAM_RESULT*)+54)
  #03  pc 00000000001612b1  /vendor/lib/egl/libGLESv2_adreno.so (EsxShaderCompiler::LoadProgramBinaryBlob(EsxContext*, EsxProgram*, void const*, unsigned int, EsxInfoLog*)+164)
  #04  pc 0000000000140191  /vendor/lib/egl/libGLESv2_adreno.so (EsxProgram::LoadProgramBinary(EsxContext*, unsigned int, void const*, int)+186)
  #05  pc 00000000000aff67  /vendor/lib/egl/libGLESv2_adreno.so (EsxContext::GlProgramBinary(unsigned int, unsigned int, void const*, int)+230)
  #06  pc 00000000000991d9  /vendor/lib/egl/libGLESv2_adreno.so (glProgramBinary+40)
  #07  pc 0000000001748bff  /data/app/com.android.chrome-2SPtcpkG5Ik-UldbIaNfyw==/base.apk

Локально нам удалось воспроизвести это и получить следующий след: https://gist.github.com/Sammekl/66fc018f81a04d21717440924a206bdb

Кто-нибудь знает, как исправить или зафиксировать этот сбой?сейчас это влияет на действительно большую базу пользователей.

1 Ответ

0 голосов
/ 11 июня 2018

Я нашел проблему.Это было вызвано установкой этого приложения поверх предыдущего приложения.Предыдущее приложение использовало некоторую форму кэширования графического процессора в веб-просмотрах, что мешает новому приложению.

Кэширование графического процессора находилось во внутренней папке приложения:

data/data/com.sammekl.myapp/app_webview/GPUCache

Я решил этопроблема с рекурсивным удалением всех файлов в этом каталоге с помощью функции расширения Kotlin File, которая называется deleteRecursively(), при первом запуске нового приложения.

val gpuCache = File("${context.filesDir.parent}/app_webview/GPUCache")
gpuCache.deleteRecursively()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...