S9/S9+ 特定 WebView 设备崩溃报告
Posted
技术标签:
【中文标题】S9/S9+ 特定 WebView 设备崩溃报告【英文标题】:S9/S9+ specific WebView device crash report 【发布时间】:2018-09-13 16:55:12 【问题描述】:我们已经看到 Google Play 出现崩溃报告,这些报告针对的是运行 android 8.0.0 的三星 S9 (starqlesq) 和 S9+ (star2qlesq):
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 个唯一用户,因此它似乎并不是特定于具有异常设备配置的单个用户。
哪些措施对缩小和解决问题最有效?
【问题讨论】:
我们还看到 Play 商店报告了类似的崩溃,并且报告了三星 Galaxy S9 和 S9+ 设备的所有崩溃。崩溃似乎是零星的,并非所有 S9 和 S9+ 设备都发生。我们怀疑新的手机 gpu 驱动程序可能有问题。目前,我们不知道如何解决。 我们在至少 5 台 S9 设备上看到了这个问题:star2qltesq、starqltesq、star2qlteue、starqlteue,前两个是大多数,其他是 520 次崩溃。 我从来没有找到更好的解决方案 - 我怀疑根本原因是 OpenGLES 驱动程序错误,它是由某些命令的硬件加速触发的。我在三星开发者论坛上发帖但没有得到回复:developer.samsung.com/forum/board/thread/… @Mr.Drew 您可能会在 libgdx 中找到一些解决此问题的线索:github.com/libgdx/libgdx/issues/3790 嗯,我的问题略有不同,因为我已经能够从崩溃中获取日志。绘制我的位图资源之一时,相同的设备会崩溃,而不是 webview 或排序。但听起来它确实可能是一个图形驱动程序,因为它只存在于这个设备子集中。 【参考方案1】:现已确认禁用硬件加速可解决这些问题设备上的问题:
val product = Build.PRODUCT
val s9ProductsThatNeedWorkaround = arrayOf("starqltesq", "star2qltesq", "starqlteue", "star2qlteue")
if (s9ProductsThatNeedWorkaround.contains(product))
WebView.setLayerType(LAYER_TYPE_SOFTWARE)
但是,在渲染网页内容时可能会出现一些外观异常。
【讨论】:
您是仅对受影响的设备还是对所有设备禁用硬件加速?如果您只针对有此问题的用户,您能否在答案中包含有效设备定位的代码示例? 禁用 Chrome 应用程序帮助我复制了这个问题(这将导致使用不同版本的 WebView)。似乎是 1) Android System WebView 版本、2) Samsung 更新版本和 3) 在 WebView 中显示内容的完美风暴。在我的案例中,应用 Andrew 的解决方法可以防止崩溃。 @AdamTerlson 在哪里可以禁用 react-native 应用程序中的硬件加速以上是关于S9/S9+ 特定 WebView 设备崩溃报告的主要内容,如果未能解决你的问题,请参考以下文章
Vue.js 2021最新报告出炉;WebView组件更新致数百款安卓应用崩溃;京东程序员回应“被猝死”:我还活着 | 前端周报