签名APK上传测试时触发java.lang.SecurityException异常求助
解决签名APK中Firebase登录的
SecurityException: Unknown calling package name 'com.google.android.gms'问题 核心原因
这个错误本质是签名发布版APK的SHA-1指纹未在Firebase/Google Cloud平台配置,导致Google Play Services无法验证应用合法身份,进而拒绝提供服务。
分步解决方法
步骤1:获取签名APK的SHA-1指纹
打开终端/命令行,执行keytool命令(替换你的keystore路径和别名):keytool -list -v -keystore C:/XX/release.keystore -alias XX输入keystore密码后,复制输出中的
SHA1值(注意是SHA-1,不是SHA-256)。步骤2:更新Firebase控制台的应用指纹
- 登录Firebase控制台,进入你的项目
- 点击顶部齿轮图标 → 项目设置
- 在你的应用区域,找到对应Android应用,点击添加指纹
- 粘贴刚才获取的SHA-1值,保存更改。
步骤3:同步Google Cloud Console的OAuth配置
- 登录Google Cloud Console,进入同一项目
- 导航到API和服务 → 凭据
- 找到类型为
Android的客户端ID(对应你的应用包名),点击编辑 - 在SHA-1证书指纹栏添加刚才的SHA-1值,保存
- 同时检查
Web类型的客户端ID是否存在(代码中用到的default_web_client_id对应这个),确保其状态正常。
步骤4:替换最新的google-services.json
回到Firebase控制台项目设置页面,重新下载google-services.json文件,替换你项目app目录下的旧文件。步骤5:重新构建签名APK
在Android Studio中执行:- Build → Clean Project
- Build → Generate Signed Bundle/APK,使用正确的签名配置重新生成发布包。
额外检查项
- 确认
app/build.gradle中的签名配置(storeFile、alias、密码)完全正确,没有拼写错误 - 确保release构建的
isMinifyEnabled为false(你的配置已满足),避免混淆Google Play Services核心代码 - 测试设备上安装最新版本的Google Play Services,旧版本可能存在兼容性问题
内容的提问来源于stack exchange,提问作者Nick Mate
相关产品推荐
相关产品推荐

