过去两天与空白地图作斗争,这里是从各种来源收集的摘要(我敢肯定这不是可能问题的完整列表!)。
1。 API 密钥丢失、不正确或被禁用
似乎是最常见的。我建议关注official documentation。如果您完成所有步骤,问题仍然存在并且您仍然不确定是否是原因,请克隆 official android samples,找到 MapWithMarker 示例 (android-samples/tutorials/MapWithMarker) 并对其进行测试。如果您运行示例并且它正确显示了地图,请尝试将默认 API KEY 交换为您拥有的那个。
- 如果有效,则密钥不是问题。
- 如果不起作用,关键是你的问题。
在这种情况下,请确保您在 Google API Console 中启用了它。
2。缺少 Android GMS 版本元数据标记
您的 AndroidManifest.xml 需要定义以下元数据属性:
<meta-data android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
更多详情请参阅the answer here 和official documentation。
3。缺少用户权限
在旧版本的 Android SDK 中,您必须明确设置某些用户权限才能正确使用 Google Maps API,例如:
<uses-permission
android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
现在不再是这种情况了,但我建议您访问 official documentation 以确保您满足这些版本要求。
4。 OpenGL ES 版本 2 的要求
过去,似乎需要在 AndroidManifest.xml 中指定以下元数据属性
<uses-feature
android:glEsVersion="0x00020000"
android:required="true"/>
official documentation 不再需要此功能。一些额外的细节是可用的,例如here.
5. AVD Manager 设备配置
Android Studio 3.0 AVD Manager 允许您为似乎运行不佳的 API 创建设备配置。目前,您可以针对似乎尚未发布的 API v27 创建配置,如果我没记错的话。即使在我开始使用 Google Maps API 之前,基本的模拟也能很好地工作。设置为 v27 的设备配置均无法与 Maps API 一起使用,从而导致空白地图。
注意:如果有更深入的知识的人纠正我的简化且可能不正确的解释,我会很高兴。由于这是我的问题,我停止了更深入的评估,现在只是切换到不同的配置。
使用以下设置:
Android Studio 3.0
Build #AI-171.4408382, built on October 20, 2017
JRE: 1.8.0_152-release-915-b01 amd64
JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
Windows 10 10.0
希望这将帮助至少一个人节省一些时间..