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

Flutter集成Google Maps与Firebase遇SecurityException问题求助

解决Flutter集成Google Maps与Firebase时的SecurityException错误

使用Flutter 3.27.1、Java 17开发项目,集成Google Maps与Firebase时遇到如下错误:

E/GoogleApiManager( 9509): Failed to get service from broker.
E/GoogleApiManager( 9509): java.lang.SecurityException: Unknown calling package name 'com.google.android.gms'.
E/GoogleApiManager( 9509):  at android.os.Parcel.createExceptionOrNull(Parcel.java:3011)
E/GoogleApiManager( 9509):  at android.os.Parcel.createException(Parcel.java:2995)
E/GoogleApiManager( 9509):  at android.os.Parcel.readException(Parcel.java:2978)
E/GoogleApiManager( 9509):  at android.os.Parcel.readException(Parcel.java:2920)
E/GoogleApiManager( 9509):  at apef.a(:com.google.android.gms@245034029@24.50.34 (190400-713002902):36)
E/GoogleApiManager( 9509):  at apcm.z(:com.google.android.gms@245034029@24.50.34 (190400-713002902):143)
E/GoogleApiManager( 9509):  at aokj.run(:com.google.android.gms@245034029@24.50.34 (190400-713002902):54)
E/GoogleApiManager( 9509):  at android.os.Handler.handleCallback(Handler.java:942)
E/GoogleApiManager( 9509):  at android.os.Handler.dispatchMessage(Handler.java:99)
E/GoogleApiManager( 9509):  at bvmf.my(:com.google.android.gms@245034029@24.50.34 (190400-713002902):1)
E/GoogleApiManager( 9509):  at bvmf.dispatchMessage(:com.google.android.gms@245034029@24.50.34 (190400-713002902):5)
E/GoogleApiManager( 9509):  at android.os.Looper.loopOnce(Looper.java:201)
E/GoogleApiManager( 9509):  at android.os.Looper.loop(Looper.java:288)
E/GoogleApiManager( 9509):  at android.os.HandlerThread.run(HandlerThread.java:67)

已尝试的方案:

  • 生成新的Google Maps API密钥并更新至AndroidManifest.xml文件
  • 通过Android Studio SDK管理器安装Google Repository和Google Play Services

可行解决思路

1. 对齐Google Play Services版本

  • 在android/app/build.gradle中指定com.google.android.gms:play-services-maps的具体版本,避免自动适配引发的版本冲突,比如:
    implementation 'com.google.android.gms:play-services-maps:18.2.0'
    
  • 若用模拟器,切换到带Google Play标识的系统镜像,确保镜像内置的Google Play Services为最新版。

2. 校验Firebase配置

  • 确认google-services.json文件正确放在android/app目录下,且文件内的包名与项目applicationId完全一致。
  • 登录Firebase控制台,检查是否已为当前项目启用Maps SDK for Android,且API密钥已关联到该项目。

3. 检查AndroidManifest.xml配置细节

  • 确保API密钥的meta-data标签在application标签内部,格式正确:
    <meta-data
        android:name="com.google.android.geo.API_KEY"
        android:value="你的API密钥"/>
    
  • 登录Google Cloud控制台,检查API密钥的限制条件,确认当前应用的包名、SHA-1指纹已被添加到允许列表中。

4. 清理缓存后重新构建

  • 执行flutter clean清理Flutter缓存,删除android/.gradle目录,再依次运行flutter pub get和flutter run。
  • 在Android Studio中执行File > Invalidate Caches... > Invalidate and Restart,清除IDE缓存后重新编译项目。

5. 检查设备端Google Play Services状态

  • 真机上进入设置 > 应用 > Google Play Services,检查是否有更新提示,确保升级到最新版本。
  • 若设备无法更新服务,更换其他测试设备或模拟器重试。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 17:39:53