S9/S9 +特定的WebView设备崩溃报告

And*_*ing 14 crash android crash-reports webview

我们一直看到谷歌播放的崩溃报告特定于三星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系统代码中.

这很奇怪,因为我们将集成的崩溃报告解决方案(Microsoft App Center SDK)和其他崩溃报告发送到App Center.

我们的应用程序大量使用WebView,我现在理解使用Chrome,在一个单独的过程中运行.

因此,我的问题是:

  • 这个崩溃报告是针对Google Play而不是App Center指示WebView相关崩溃的事实吗?
  • 什么样的事情会导致像这样的崩溃?到目前为止,它影响了3个唯一用户,因此它似乎并不特定于具有不寻常设备配置的单个用户.
  • 在缩小和解决问题方面哪些行动最有效?

And*_*ing 5

现在已确认禁用硬件加速可以解决这些有问题的设备上的问题:

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

然而,在渲染 Web 内容时可能会出现一些外观异常。