You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jetpack Compose中GoogleMap无法正常显示问题求助

地图无法显示的原因排查及解决办法

你使用Maps Compose Library集成Google Maps API时,程序运行但地图无法正常显示,常见原因及对应解决方式如下:

1. API密钥配置错误

这是最普遍的问题,需确认:

  • 已在Google Cloud控制台启用Maps SDK for Android服务;
  • 正确将API密钥添加到AndroidManifest.xml:
    <application>
        <meta-data
            android:name="com.google.android.geo.API_KEY"
            android:value="你的有效API密钥"/>
    </application>
    
  • 密钥的限制规则(包名、SHA-1指纹)与当前应用匹配,避免因权限拦截导致API调用失败。

2. 未设置初始相机位置

你的代码中没有指定地图的初始相机位置,地图无法确定加载区域。需为GoogleMap添加cameraPositionState参数:

@Composable
fun MyMap() {
    var uiSettings by remember { mutableStateOf(MapUiSettings()) }
    var properties by remember {
        mutableStateOf(MapProperties(mapType = MapType.SATELLITE))
    }
    // 初始相机位置,示例为北京坐标,缩放级别10
    val cameraPositionState = rememberCameraPositionState {
        position = CameraPosition.fromLatLngZoom(LatLng(39.9042, 116.4074), 10f)
    }

    Box(Modifier.fillMaxSize()) {
        GoogleMap(
            modifier = Modifier.matchParentSize(),
            properties = properties,
            uiSettings = uiSettings,
            cameraPositionState = cameraPositionState // 添加这一行
        )
        Switch(
            checked = uiSettings.zoomControlsEnabled,
            onCheckedChange = {
                uiSettings = uiSettings.copy(zoomControlsEnabled = it)
            }
        )
    }
}

3. 依赖版本不兼容

Maps Compose与Google Maps SDK版本需匹配,建议使用官方推荐的组合,比如在Module级build.gradle中配置:

dependencies {
    implementation "com.google.maps.android:maps-compose:4.3.0"
    implementation "com.google.android.gms:play-services-maps:18.2.0"
}

4. 权限缺失

地图加载需要网络权限,若涉及定位还需定位权限,在AndroidManifest.xml中添加:

<!-- 网络权限 -->
<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" />

Android 6.0+版本需在运行时请求定位权限,否则可能影响地图加载。

5. 网络连接问题

地图瓦片依赖网络加载,确保设备处于联网状态,且未被防火墙、代理拦截Google地图服务。

最后,建议查看Logcat中的错误日志,通常会有明确的错误提示(如API密钥无效、权限不足等),能快速定位问题根源。

内容的提问来源于stack exchange,提问作者sam_1234

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 11:01:59