尝试在 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 中选择一些选项。可能是AutomaticHardware GLESSoftware 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 设备上运行,但不能在模拟器上运行

Android:应用程序在模拟器上运行,但在我的手机上崩溃

在 android 模拟器上运行 react-native

为啥我的模拟器没有在 Android Studio 上运行?

Expo 网络响应超时,无法在 Android 模拟器上运行 Expo 应用