【发布时间】:2012-12-05 00:38:47
【问题描述】:
地图 v2 文档指出:
因为第 2 版 Google Maps Android API 需要 OpenGL ES 版本 2,您必须添加一个
<uses-feature>元素作为 AndroidManifest.xml 中的manifest元素:<uses-feature android:glEsVersion="0x00020000" android:required="true"/>`这会通知外部服务 要求。特别是具有阻止谷歌的作用 Play 商店不会在不支持的设备上显示您的应用 OpenGL ES 版本 2。
事实上,如果清单中没有它,它会抛出一个exception。我不想在商店中过滤我的应用程序,我打算继续为旧设备使用旧地图,并且仅在存在所需功能时才显示新地图,在运行时而不是在安装之前检测到。
那我该怎么做呢?是否必须是多个APKs 和不同的manifests?
【问题讨论】:
-
只是 android:required="false"。那么它不应该被过滤。
-
android:required="false"在 Nexus S 4.1.2 上产生12-05 22:18:31.484: E/AndroidRuntime(9618): Caused by: java.lang.RuntimeException: Google Maps Android API only supports OpenGL ES 2.0 andabove. Please add <uses-feature android:glEsVersion="0x00020000" android:required="true" /> into AndroidManifest.xml -
同样的问题,如果我从清单中删除要求(或设置 required="false"),MapFragment 会在支持 OpenGL ES 2.0 的设备上引发异常。就好像 MapFragment 是在 Activity 服务配置中寻找需求,而不是检查设备本身是否支持 OpenGL ES 2.0。
标签: android google-maps-android-api-2