在尝试在Android模拟器上运行mapsActivity时出现EGL错误。

3

我正在尝试在带有Google API的Android模拟器API 25上启动默认的Google Maps Activity,但是我遇到了以下错误:

Initialized EGL, version 1.4
04-15 11:30:25.043 3888-3937/dk.pawliux.app.mapstest D/OpenGLRenderer: Swap behavior 1
04-15 11:30:25.096 3888-3933/dk.pawliux.app.mapstest E/EGL_emulation: rcCreateContext returned 0
04-15 11:30:25.097 3888-3933/dk.pawliux.app.mapstest E/EGL_emulation: tid 3933: eglCreateContext(1284): error 0x3003 (EGL_BAD_ALLOC)
04-15 11:30:25.097 3888-3933/dk.pawliux.app.mapstest E/AndroidRuntime: FATAL EXCEPTION: GLThread 194
                                                                       Process: dk.pawliux.app.mapstest, PID: 3888
                                                                       java.lang.RuntimeException: createContext failed: 12291
                                                                           at com.google.maps.api.android.lib6.gmm6.vector.bi.a(:com.google.android.gms.DynamiteModulesB:834)
                                                                           at com.google.maps.api.android.lib6.gmm6.vector.bj.f(:com.google.android.gms.DynamiteModulesB:20825)
                                                                           at com.google.maps.api.android.lib6.gmm6.vector.bj.run(:com.google.android.gms.DynamiteModulesB:881)

我在合并后的清单文件中看到了以下内容:

<uses-feature android:glEsVersion="0x00020000" android:required="true"/>

这是不是意味着我正在尝试启动一个使用比我的模拟器/显卡支持更高的EGL版本的应用程序?我正在使用启用了HAXM的Intel HD Graphics 3000。

我已经尝试过在许多其他带有Google APIs的API上启动,但仍然遇到相同的问题。即使我的测试应用程序无法启动,但内置的Google Maps应用程序可以在模拟器上启动并正常工作。

有没有办法解决我的问题?

该应用程序在真实设备上运行良好。

提前感谢。

2个回答

5

看起来我已经找到了解决自己问题的办法。我在这里发布它,以防其他人遇到相同的问题。

创建新模拟器时,可以在模拟性能中选择一些选项。它可能是自动硬件GLES软件GLES。在我的情况下,软件GLES 2.0起了魔法作用。地图工作速度有点慢,但足够快,让我能够耐心地尝试我的应用程序。

这里是选择图形仿真的位置图片:

Graphics emulation options

我想我的显卡在模拟器方面存在问题。


在我的Windows 10开发笔记本上,模拟器最近一直以“兼容渲染器”模式运行,因为我的Intel Graphics 4600或Nvidia GeForce GTX 960M会导致模拟器冻结。因此,即使选择“软件GLES 2.0”,也会导致“RuntimeException:createContext at com.google.maps.api.android.lib6.gmm6.vector”。 - Someone Somewhere
简而言之:Google的模拟器在我的笔记本电脑上不太有用... 我想还是回到Genymotion吧。 - Someone Somewhere

2
另一种解决方法是进入模拟器的设置,然后更改OpenGL ES渲染选项,例如在我的情况下,将桌面本地OpenGL作为渲染选项可以解决问题。请参考下方截图: Screenshot here

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接