尝试在 Android 模拟器上运行 mapsActivity 时出现 EGL 错误
Posted
技术标签:
【中文标题】尝试在 Android 模拟器上运行 mapsActivity 时出现 EGL 错误【英文标题】:EGL error when trying to run mapsActivity on Android emulator 【发布时间】:2017-09-11 13:05:46 【问题描述】:我正在尝试在带有 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 API 在许多其他 API 上启动一样,但仍然保持不变。即使我的测试应用程序没有启动,但集成的 Google 地图应用程序启动并在模拟器上运行没有任何问题。
有没有办法解决我的问题?
应用程序正在真实设备上运行。
提前致谢。
【问题讨论】:
【参考方案1】:解决此问题的另一种方法是转到模拟器本身的设置,然后更改 OpenGL ES 渲染选项,在我的情况下,更改桌面原生 OpenGL 解决了问题。
请查看下面的截图:
【讨论】:
【参考方案2】:看来我已经找到了解决自己问题的方法。我在这里发布它以防其他人遇到同样的问题。
在创建新的模拟器时,可以在 Emulated performance 中选择一些选项。可能是Automatic
、Hardware GLES
或Software GLES
。就我而言,Software GLES 2.0
发挥了作用。这些地图的运行速度有点慢,但速度足够快,可以耐心试用我的应用程序。
这里是选择地点的图片Emulation for Graphics
我想我的显卡有模拟器问题。
【讨论】:
在我的 Windows 10 开发笔记本电脑上,模拟器最近一直在“兼容性渲染器”模式下运行,因为我的 Intel Graphics 4600 或 Nvidia GeForce GTX 960M 一直在冻结模拟器。所以即使选择Software GLES 2.0
也会导致RuntimeException: createContext at com.google.maps.api.android.lib6.gmm6.vector
TLDR:Google 的模拟器 - 在我的笔记本电脑上 - 没用......我想回到 Genymotion以上是关于尝试在 Android 模拟器上运行 mapsActivity 时出现 EGL 错误的主要内容,如果未能解决你的问题,请参考以下文章
在 iOS 模拟器上运行 Flutter 失败,但在 Android 模拟器上可能
Android Studio Google Maps 可在 Android 设备上运行,但不能在模拟器上运行