BUG:createWindowSurface失败了EGL_BAD_ALLOC

时间:2013-11-22 19:22:55

标签: java android surfaceview

我在Google Play上有一个应用程序,用于倒计时数字和字母。在这个应用程序中,我有以下活动:

  • google sigin
  • archivements
  • admob service

我使用Google Analytics和ACRA进行错误报告。我不使用GLsurfaceView,但我每天使用ACRA一到两次,这给了我这些错误:

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;有谁可以帮助我?

2 个答案:

答案 0 :(得分:8)

我遇到了同样的问题,发现问题与某些设备上的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
}

答案 1 :(得分:2)

您是否尝试过为您的应用禁用硬件加速(它正在利用OpenGL因此预感此修复)?

添加

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

清单中的应用程序标记会明确地将其关闭。也许问题会消失。

如果您想了解:if should use hardware acceleration or not

,请参阅此问题并附上答案