web-dev-qa-db-ja.com

バグ:createWindowSurfaceがEGL_BAD_ALLOCに失敗しました

数字と文字をカウントダウンするためのアプリケーションがGooglePlayにあります。このアプリケーションでは、次のアクティビティがあります。

  • グーグルシギン
  • アーカイブ
  • admobサービス

エラー報告にはGoogleAnalyticsとACRAを使用しています。私はGLsurfaceViewを使用していませんが、ACRAを1日に1〜2回使用しているため、次のエラーが発生します。

Java.lang.RuntimeException: createWindowSurface failed EGL_BAD_ALLOC
at Android.view.HardwareRenderer$GlRenderer.createSurface(HardwareRenderer.Java:763)
at Android.view.HardwareRenderer$GlRenderer.createEglSurface(HardwareRenderer.Java:663)
at Android.view.HardwareRenderer$GlRenderer.initialize(HardwareRenderer.Java:502)
at Android.view.ViewRootImpl.performTraversals(ViewRootImpl.Java:1325)
at Android.view.ViewRootImpl.handleMessage(ViewRootImpl.Java:2467)
at Android.os.Handler.dispatchMessage(Handler.Java:99)
at Android.os.Looper.loop(Looper.Java:137)
at Android.app.ActivityThread.main(ActivityThread.Java:4424)
at Java.lang.reflect.Method.invokeNative(Native Method)
at Java.lang.reflect.Method.invoke(Method.Java:511)
at com.Android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.Java:784)
at com.Android.internal.os.ZygoteInit.main(ZygoteInit.Java:551)
at dalvik.system.NativeStart.main(Native Method)

誰かが何が起こったのか知っていますか?私はsurfaceViewを使用しません。誰かが私を助けることができますか?

29
cayrodev

同じ問題が発生し、問題が一部のデバイスのWebViewとハードウェアアクセラレーションに関連していることがわかりました。

ハードウェアアクセラレーションを完全にオフにする代わりに、すべてのWebViewで無効にしましたAdMobビューを含む

ここにそれを行う方法があります:

adView = new AdView(this); //or get it with findViewById()
if (Build.VERSION.SDK_INT >= 11) {
   adView.setLayerType(AdView.LAYER_TYPE_SOFTWARE, null); //instead of LAYER_TYPE_HARDWARE
}
8
agirardello

アプリのハードウェアアクセラレーションを無効にしてみましたか(OpenGLを利用しているため、この修正の予感があります)?

追加

<application Android:hardwareAccelerated="false" ...>

マニフェストのアプリケーションタグに明示的にオフにします。そしておそらく問題はなくなるでしょう。

知りたい場合は、この質問と回答を参照してください。 ハードウェアアクセラレーションを使用する必要があるかどうか

2
Magnus