react-native-maps@0.29.3 Android端运行后显示空白地图问题问询

解决方案
- 检查Google Maps API密钥配置
这是最高发的问题,需确认两个点:- 已在Google Cloud控制台为你的API密钥开启
Google Maps Android SDK权限,且密钥绑定的包名、SHA1签名和你当前运行的应用完全匹配,debug和release版本的SHA1不同,需要分别绑定 - 已在
android/app/src/main/AndroidManifest.xml的application标签内添加密钥配置:
<meta-data android:name="com.google.android.geo.API_KEY" android:value="你的Google Maps API密钥"/> - 已在Google Cloud控制台为你的API密钥开启
- 检查MapView组件的provider配置
react-native-maps安卓端默认不会自动使用Google地图,需要显式指定provider:
注意必须给MapView设置明确的宽高,如果父容器没有flex属性,直接给固定宽高也可以,无样式会导致组件渲染但无显示空间。import MapView, { PROVIDER_GOOGLE } from 'react-native-maps'; // 组件内使用时必须传入provider参数 <MapView provider={PROVIDER_GOOGLE} style={{ flex: 1 }} // 必须给MapView设置明确的宽高,无样式也会导致空白 region={{ latitude: 39.9, longitude: 116.3, latitudeDelta: 0.0922, longitudeDelta: 0.0421 }} /> - 检查安卓权限配置
确认AndroidManifest.xml中已添加以下必要权限:<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <!-- 如果开启了showsUserLocation属性,还需添加以下位置权限 --> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> - 检查Google Play服务状态
运行应用的安卓真机/模拟器必须安装且更新到最新版的Google Play服务,版本过低会导致地图加载失败。 - 检查依赖版本配置
在android/build.gradle的ext块中统一指定Google Play服务版本,避免版本冲突:ext { buildToolsVersion = "33.0.0" minSdkVersion = 21 compileSdkVersion = 33 targetSdkVersion = 33 // 新增以下配置 playServicesVersion = "18.1.0" } - 国内环境特殊说明
若应用运行的设备网络无法访问Google服务,Google地图将无法加载,可替换为高德、百度地图等国内服务商提供的React Native地图SDK。
内容的提问来源于stack exchange,提问作者Roslyn Temateu
相关产品推荐
相关产品推荐

