reCAPTCHA Enterprise安卓集成报错:Key type invalid求助
解决reCAPTCHA Enterprise "Key type invalid" 错误
以下是针对该问题的具体排查与解决步骤:
1. 确认密钥为reCAPTCHA Enterprise专属Android密钥
务必确保你在Google Cloud创建的是reCAPTCHA Enterprise的Android密钥,而非普通reCAPTCHA(v2/v3)的Android密钥——两者属于不同服务,普通reCAPTCHA密钥无法适配Enterprise SDK。
- 验证路径:Google Cloud Console → 安全 → reCAPTCHA Enterprise → 密钥 → 查看密钥详情,确认"密钥类型"为
Android app且归属reCAPTCHA Enterprise服务。
2. 检查依赖配置是否正确
确保Module级build.gradle中引入的是reCAPTCHA Enterprise官方SDK,而非旧版SafetyNet或普通reCAPTCHA依赖:
dependencies { implementation 'com.google.android.recaptcha:recaptcha:18.4.0' // 使用最新稳定版 // 避免引入 com.google.android.gms:safetynet 或普通reCAPTCHA相关依赖 }
3. 验证包名与签名指纹配置
若密钥开启了包名验证:
- 确认Google Cloud中配置的包名与应用
build.gradle里的applicationId完全一致(注意大小写匹配,Android包名通常为小写)。 - 若配置了签名指纹,需保证测试用APK使用对应证书打包:debug包默认用debug keystore,需将该证书的SHA-1添加到密钥配置中,否则会触发验证失败。
- 禁用包验证的密钥可跳过签名检查,但仍需确认密钥本身为Enterprise类型。
4. 确认reCAPTCHA Enterprise API已启用
在Google Cloud Console中,检查项目是否已启用reCAPTCHA Enterprise API:
- 路径:API与服务 → 已启用的API与服务 → 搜索"reCAPTCHA Enterprise API",确保状态为"已启用"。
5. 检查密钥复制准确性
确认代码中粘贴的密钥无多余空格、换行或字符缺失,建议直接从Google Cloud控制台复制密钥,避免手动输入错误。
6. 补充必要的Manifest配置
确保AndroidManifest.xml添加了联网权限(reCAPTCHA需联网完成验证):
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
额外测试建议
- 新建一个无包名与签名限制的reCAPTCHA Enterprise Android密钥,替换到代码中测试,排除旧密钥的配置异常。
- 确保测试设备安装了最新版Google Play服务,reCAPTCHA Enterprise SDK依赖其提供的基础能力。
内容的提问来源于stack exchange,提问作者Stonz2
相关产品推荐
相关产品推荐

