错误代码

使用集合让一切井井有条 根据您的偏好保存内容并对其进行分类。

本页面列出了一些常见的错误代码及其所代表的含义,并说明了应用或游戏可以怎样响应这些错误代码。

常见错误代码

下表列出了该 API 可能会在任何平台上返回的错误,以及建议的后续步骤。

错误代码 说明 您的操作
API_NOT_AVAILABLE Integrity API 不可用。Integrity API 未启用,或者 Play 商店版本可能太低。 1) 确保已在 Google Play 管理中心内启用 Integrity API。
2) 让用户更新 Google Play 商店。
NETWORK_ERROR 未找到可用网络。 让用户检查网络连接。
PLAY_STORE_NOT_FOUND 在设备上未找到官方 Play 商店应用。 让用户安装或启用 Google Play 商店。
PLAY_STORE_VERSION_OUTDATED Play 商店应用需要更新。 让用户更新 Google Play 商店。
PLAY_STORE_ACCOUNT_NOT_FOUND 在设备上未找到 Play 商店帐号。请注意,Play Integrity API 现在支持未经身份验证的请求。此错误代码仅用于缺少支持的旧版 Play 商店。 让用户登录 Google Play 商店。
CANNOT_BIND_TO_SERVICE 绑定到 Play 商店中的服务时失败。这可能是因为在设备上安装的 Play 商店版本太低。 让用户更新 Google Play 商店。
APP_NOT_INSTALLED 未安装发起调用的应用。 出了点问题;可能是攻击。不可操作。
PLAY_SERVICES_NOT_FOUND Play 服务不可用或需要更新。 让用户安装或启用 Play 服务。
PLAY_SERVICES_VERSION_OUTDATED Play 服务需要更新。 让用户更新 Google Play 服务。
TOO_MANY_REQUESTS 发起调用的应用向该 API 发出的请求太多,已经被限制。 使用指数退避算法重试。
GOOGLE_SERVER_UNAVAILABLE 未知内部 Google 服务器错误。 使用指数退避算法重试。
CLIENT_TRANSIENT_ERROR 客户端设备上出现暂时性错误。从 Kotlin 和 Java 编程语言的库版本 1.1.0 开始受支持。 使用指数退避算法重试。
INTERNAL_ERROR 未知内部错误。 使用指数退避算法重试。
NONCE_TOO_SHORT Nonce 长度太短。Nonce 的长度必须至少为 16 字节(在 base64 编码之前)。 使用更长的 Nonce 重试。
NONCE_TOO_LONG Nonce 长度太长。Nonce 的长度必须小于 500 字节(在 base64 编码之前)。 使用更短的 Nonce 重试。
NONCE_IS_NOT_BASE64 Nonce 未采用 base64、网络安全且不换行的形式。 使用正确的 Nonce 格式重试。
CLOUD_PROJECT_NUMBER_IS_INVALID 提供的云项目编号无效。 使用已启用 Play Integrity API 的云项目的编号。
APP_UID_MISMATCH 发起调用的应用的 UID(用户 ID)与软件包管理器中的 UID 不符。 出了点问题;可能是攻击。不可操作。

原生代码专用错误代码

我们在原生错误代码前面加上了“INTEGRITY_”前缀,以避免潜在的命名冲突。除了上面列出的错误代码之外,原生 API 还包含以下错误代码:

错误代码 说明 您的操作
INTEGRITY_INITIALIZATION_NEEDED IntegrityManager 未初始化。 先调用 IntegrityManager_init()
INTEGRITY_INITIALIZATION_FAILED 初始化 Integrity API 时出错。 使用指数退避算法重试。不妨考虑提交 bug。
INTEGRITY_INVALID_ARGUMENT 传递给 Integrity API 的参数无效。 使用正确的参数重试。

出现错误时的重试逻辑

如果出现某些错误代码,应用应重试 API 调用。查看所有错误代码,并检查应用在必要时是否会使用指数退避算法重试。建议的重试策略为:

  1. 第一次失败后,先延迟 5 秒钟,然后再重试。
  2. 重试总共三次,每次都会以指数方式增加延迟时间(10 秒、20 秒)。

执行这些重试操作时,请检查网络连接,并避免设备过载。

如果您在尝试 3 次后仍然看到错误,请将结果视为客户端未通过所有完整性检查。该错误可能由多种原因导致,包括(但不限于):设备过载、网络连接问题或恶意方企图尝试。