Android Studio重命名项目后运行signingReport失败无法获取SHA1/SHA256
问题诱因
- Gradle配置缓存兼容问题:你使用的Gradle 7.0.2版本中,配置缓存属于实验性功能,和当前Android Gradle Plugin版本的
signingReport任务存在兼容冲突,任务依赖的部分内部类不支持配置缓存序列化,最终触发序列化失败报错,甚至抛出并发修改异常。 - 项目修改带来的配置偏移:修改项目名称的过程中如果同步改动了applicationId,或者项目残留了旧的Gradle缓存文件,一方面会加剧配置缓存的兼容问题,另一方面会导致应用签名哈希和手机号验证服务后台绑定的哈希值不匹配,最终触发手机号验证失效。其余登录功能正常是因为对应的第三方服务没有同步校验包名+哈希的绑定关系,或者配置还未过期。
解决方案
修复signingReport报错问题
- 临时跳过配置缓存运行命令:直接执行以下命令即可正常输出签名哈希:
gradlew signingReport --no-configuration-cache - 清理残留损坏缓存:先执行
gradlew clean,再手动删除项目根目录下的.gradle文件夹、app模块下的build文件夹,重启Android Studio后重新运行命令即可。 - 长期兼容优化:升级Android Gradle Plugin和Gradle到匹配的最新稳定版本,高版本已经修复了
signingReport任务和配置缓存的兼容问题。
修复手机号验证失效问题
- 拿到新生成的SHA1、SHA256哈希值后,更新到手机号验证对应的服务后台的应用配置中。
- 检查app模块build.gradle文件中的
applicationId配置,确认和服务后台绑定的包名完全一致,修改项目名时如果同步修改了applicationId需要同步更新后台配置。 - 如果你使用了多构建变体配置,确认当前打包使用的签名文件,和你提交到服务后台的签名文件一致,避免debug、release签名混用导致哈希不匹配。
内容的提问来源于stack exchange,提问作者Pawan Kumar
相关产品推荐
相关产品推荐

