APK安装后Google Map显示空白问题求助(Android 7.0 API24)
解决Google Maps API导出APK后地图空白的问题
我刚碰到过几乎一模一样的情况!Debug/Release在IDE里跑都完全正常,导出APK装到Android 7.0(API24)设备上就地图空白,其余功能都没问题——大概率是Manifest配置或者API密钥与签名的绑定出了问题,给你梳理几个必查的点:
1. 最常见的坑:Release版API密钥没配置正确
Debug模式下,你的App用的是IDE自带的调试签名SHA-1,而导出APK时用的是你自己的发布签名SHA-1,这两个完全不同。Google Maps API控制台里必须把发布签名的SHA-1 + 包名绑定到对应的API密钥上,并且把这个密钥放到Manifest里,而不是继续用Debug的密钥。
检查Manifest里的meta-data配置:
<meta-data android:name="com.google.android.geo.API_KEY" android:value="你的RELEASE专属API密钥"/>
👉 去Google Cloud Console的API密钥页面,确认这个密钥对应的SHA-1是你发布签名的(不是调试的),包名也完全匹配。
2. Manifest里漏了必需的权限或配置
确保你的Manifest里包含这些地图运行必需的内容:
权限声明
<!-- 网络权限(地图加载必须) --> <uses-permission android:name="android.permission.INTERNET" /> <!-- 网络状态检测 --> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <!-- 可选:如果需要定位功能 --> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <!-- 地图需要OpenGL ES 2.0支持 --> <uses-feature android:glEsVersion="0x00020000" android:required="true" />
服务声明
在<application>标签内添加Google Maps服务的声明:
<service android:name="com.google.android.gms.maps.GoogleMapService" android:enabled="true" android:exported="false" />
3. ProGuard混淆导致地图类被误删
如果你导出APK时开启了ProGuard混淆,很可能把Google Maps的核心类给混淆掉了,导致地图无法加载。在你的ProGuard规则文件(proguard-rules.pro)里加上:
# 保留Google Play服务相关类 -keep class com.google.android.gms.** { *; } -keep interface com.google.android.gms.** { *; } # 保留Google Maps Android Utils类(如果用到的话) -keep class com.google.maps.android.** { *; } # AndroidX版本的Maps(如果用AndroidX) -keep class com.google.android.libraries.maps.** { *; }
4. 适配Android 7.0的特殊点
Android 7.0(API24)对权限和签名的校验更严格:
- 如果你的App
targetSdkVersion >=23,位置权限需要动态申请(不过你说其他功能正常,这个可能不是主因,但还是要确认); - 确保你的发布签名是正确的,没有在导出APK时选错签名文件。
我当时就是把Debug的API密钥直接放到Release的Manifest里了,改完Release密钥后地图立马就显示了,你可以先从这个点查起!
内容的提问来源于stack exchange,提问作者mega5800
相关产品推荐
相关产品推荐

