S9/S9+ конкретный отчет о сбое устройства WebView

Мы наблюдаем отчеты о сбоях, поступающие в Google Play, которые относятся к Samsung S9 (starqlesq) и S9+ (star2qlesq), работающие под управлением Android 8.0.0:

signal 11 (SIGSEGV), code 1 (SEGV_MAPERR) backtrace: #00 pc 0000000000a51278/vendor/lib64/libllvm-glnext.so(_ZN13ShaderObjects17loadProgramBinaryEP15CompilerContextPvmP23QGLC_LINKPROGRAM_RESULT+1396) #01 pc 000000000099b500/vendor/lib64/libllvm-glnext.so(_ZN15CompilerContext17loadProgramBinaryEPvmP23QGLC_LINKPROGRAM_RESULT+160) #02 pc 0000000000a6e110/vendor/lib64/libllvm-glnext.so(_Z21QGLCLoadProgramBinaryPvS_mP23QGLC_LINKPROGRAM_RESULT+88) #03 pc 00000000001a501c/vendor/lib64/egl/libGLESv2_adreno.so(_ZN17EsxShaderCompiler21LoadProgramBinaryBlobEP10EsxContextP10EsxProgramPKvmP10EsxInfoLog+256)

Рассматривая вышеупомянутую трассировку стека, авария появляется в системном коде OpenGL.

Это странно, потому что у нас есть интегрированное решение для отчетов о сбоях (SDK для Microsoft App Center) и другие отчеты о сбоях в App Center.

Наше приложение сильно использует WebView, и теперь я понимаю, что Chrome работает в отдельном процессе.

Поэтому мои вопросы:

  • Является ли этот отчет о WebView Google Play, а не App Center, свидетельствующим о WebView в работе WebView?
  • Что может привести к сбою? Пока это затрагивает 3 уникальных пользователя, поэтому оно не похоже на конкретного пользователя с необычной конфигурацией устройства.
  • Какие действия будут наиболее эффективными в сокращении и разрешении проблемы?

Ответ 1

Отказ от аппаратного ускорения теперь подтвержден как работающий над проблемой на этих проблемных устройствах:

val product = Build.PRODUCT
val s9ProductsThatNeedWorkaround = arrayOf("starqltesq", "star2qltesq", "starqlteue", "star2qlteue")
if (s9ProductsThatNeedWorkaround.contains(product)) {
    WebView.setLayerType(LAYER_TYPE_SOFTWARE)
}

Однако могут возникнуть некоторые косметические аномалии при разрыве веб-контента.