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

Flutter集成Google Maps API遇权限报错及空白地图求助

解决Flutter中Google交互地图空白(仅蓝色覆盖层)的问题

根据你提供的信息,静态地图正常显示说明API Key本身有效,但交互地图空白通常由以下几个核心问题导致,按优先级排查:

1. 确认Google Cloud控制台的API权限

静态地图仅需要Maps Static API,但交互地图必须开启对应平台的SDK权限:

  • 登录Google Cloud控制台,找到你的项目
  • 进入「API和服务」→「库」
  • 搜索并启用Maps SDK for Android(Android端)和Maps SDK for iOS(若涉及iOS)
  • 确保API Key的限制(如果有)包含你的应用包名和SHA-1指纹,且未限制为仅静态地图API

2. 检查google_maps_flutter插件配置

  • 确保pubspec.yaml中依赖最新版插件:
    dependencies:
      flutter:
        sdk: flutter
      google_maps_flutter: ^2.5.0 # 替换为当前最新版本
    
  • 执行flutter pub get更新依赖
  • 确认android/app/build.gradle中的minSdkVersion不低于20(插件最低要求):
    android {
      defaultConfig {
        minSdkVersion 20
      }
    }
    

3. 验证AndroidManifest.xml配置细节

你的manifest已添加API Key,补充以下检查:

  • 确保com.google.android.geo.API_KEY的meta-data标签完全在<application>内部(你的配置是正确的)
  • 若需显示用户位置,添加位置权限(非空白问题必需项,但建议补充):
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    
  • 可选添加位置硬件特性声明:
    <uses-feature android:name="android.hardware.location.gps" android:required="false" />
    

4. 检查代码中地图的初始化逻辑

确保GoogleMap组件正确初始化,示例代码:

class MapScreen extends StatefulWidget {
  final double latitude;
  final double longitude;

  const MapScreen({super.key, required this.latitude, required this.longitude});

  @override
  State<MapScreen> createState() => _MapScreenState();
}

class _MapScreenState extends State<MapScreen> {
  GoogleMapController? _mapController;

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: GoogleMap(
        initialCameraPosition: CameraPosition(
          target: LatLng(widget.latitude, widget.longitude),
          zoom: 16,
        ),
        onMapCreated: (controller) {
          setState(() {
            _mapController = controller;
          });
        },
        // 若需显示用户位置,启用以下配置
        myLocationEnabled: true,
        myLocationButtonEnabled: true,
      ),
    );
  }
}

5. 其他排查点

  • 网络问题:交互地图需实时加载瓦片,确保设备网络正常,无代理或防火墙阻止Google Maps域名
  • Google Play服务版本:日志显示你的设备Google Play服务版本为223017029,属于较新版本,若仍有问题可尝试更新Google Play服务
  • 忽略无关日志:日志中的ClassNotFoundException: com.mediatek.cta.CtaHttp是联发科设备的系统级警告,与Google Maps无关,无需处理

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 13:50:43