Flutter集成FireStore后启动时触发SecurityException错误求助
Flutter集成FireStore后启动时触发SecurityException错误求助
嘿,我之前刚碰到过一模一样的问题!当时在Flutter项目里刚集成完FireStore,一启动就抛出这个SecurityException,折腾了好一阵才找到几个可行的解决办法,给你参考下:
首先先把你遇到的错误日志贴出来方便对照:
java.lang.SecurityException: Unknown calling package name 'com.google.android.gms'. at android.os.Parcel.readException(Parcel.java:2016) at android.os.Parcel.readException(Parcel.java:1962) at amyk.a(:com.google.android.gms@243633004@24.36.33 at amwr.z(:com.google.android.gms@243633004@24.36.33 at amdz.run(:com.google.android.gms@243633004@24.36.33 at android.os.Handler.handleCallback(Handler.java:809) at android.os.Handler.dispatchMessage(Handler.java:102) at bpbc.ly(:com.google.android.gms@243633004@24.36.33 at bpbc.dispatchMessage(:com.google.android.gms@243633004@24.36.33 at android.os.Looper.loop(Looper.java:166) at android.os.HandlerThread.run(HandlerThread.java:65)
下面是我亲测有效的几个排查方向:
- 更新Google Play服务:这个错误大概率是设备上的Google Play服务版本太低,和Firebase依赖的版本不匹配导致的。你可以去设备的应用商店把Google Play服务更到最新,然后重启设备再试试启动项目。
- 核对Firebase配置文件:确保你放在
android/app目录下的google-services.json是从Firebase控制台正确下载的,重点检查包名有没有写错,还有debug和release环境的配置文件别搞混了——很多人这里踩坑。 - 同步依赖版本:打开你的
pubspec.yaml文件,确认firebase_core和cloud_firestore的版本是兼容的,尽量用官方推荐的稳定版,别随便用预览版或者太老旧的版本,版本不兼容很容易出这类权限相关的奇怪错误。 - 清理项目缓存:有时候项目缓存会搞鬼,你可以试试先执行
flutter clean,然后删除android/build目录,再跑flutter pub get重新拉取依赖,最后flutter run启动项目,很多时候清完缓存问题就解决了。 - 检查AndroidManifest权限:虽然FireStore本身不需要特殊的危险权限,但你得确保
AndroidManifest.xml里没有误删必要的网络权限,<uses-permission android:name="android.permission.INTERNET" />这个权限必须存在,不然FireStore连不上服务器也可能触发奇怪的错误。
如果上面的方法都试过还不行,你可以试试在Firebase控制台重新生成配置文件,或者检查下项目的签名配置有没有问题——签名不匹配也可能导致这类权限验证失败的错误。
内容来源于stack exchange
相关产品推荐
相关产品推荐

