web-dev-qa-db-ja.com

S9 / S9 +固有のWebViewデバイスのクラッシュレポート

サムスンS9(starqlesq)とS9 +(star2qlesq)に固有のクラッシュレポートがGoogle Playに届き、どちらも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を使用しており、別のプロセスで実行されています。

したがって、私の質問は次のとおりです。

  • このクラッシュレポートがAppCenterではなくGooglePlayに送信されるという事実は、WebView関連のクラッシュを示していますか?
  • このようなクラッシュを引き起こす可能性があるのはどのようなものですか?これまでのところ、3人のユニークユーザーに影響を及ぼしているため、異常なデバイス構成を持つ個々のユーザーに固有のようには見えません。
  • 問題を絞り込んで解決するのに最も効果的なアクションは何ですか?
14
Andrew Ebling

ハードウェアアクセラレーションを無効にすることで、これらの問題のあるデバイスの問題を回避できることが確認されました。

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

ただし、Webコンテンツをレンダリングするときに、外観上の異常が発生する場合があります。

4
Andrew Ebling