处理 Android SDK 错误
SDK 返回的所有错误均为 AdaptyError 类型。
Tip
在调试前开启详细日志。 大多数 AdaptyError 都封装了底层的 Play Billing、网络或后端错误。开启详细日志(Adapty.logLevel = AdaptyLogLevel.VERBOSE — 参见日志记录)后,封装的错误会打印到控制台,通常能直接告诉你真正的原因。
Important
如果以上方案未能解决你的问题,请查看其他问题,了解联系支持前需要做哪些准备,以便我们更高效地为你提供帮助。
| 错误 | 解决方案 |
|---|---|
| UNKNOWN | 发生了未知或意外错误。 |
| ITEM_UNAVAILABLE | 此错误多发生在测试阶段,可能原因是产品未上线至生产环境,或用户不在 Google Play 的测试人员组中。 |
| ADAPTY_NOT_INITIALIZED | Adapty SDK 未激活。 最常见的情况是启动页或早期 UI 钩子在 Adapty.activate 返回之前调用了 Adapty 方法。该问题具有偶发性,在模拟器上可能无法复现,因为真机的时序不同。请等待 Adapty.activate 完成后再调用其他 SDK 方法。完整调用顺序请参阅 Android SDK 调用顺序。同时,你还需要使用 Adapty.activate 方法正确配置 Adapty SDK。 |
| PROFILE_WAS_CHANGED | 操作期间用户画像发生了变更。 这种情况发生在 Adapty.identify 仍在执行时调用了其他方法——进行中的调用落在了即将被替换的用户画像上,SDK 将其拒绝。请等待 Adapty.identify 完成后再调用其他 SDK 方法。参阅 Android SDK 调用顺序。 |
| PRODUCT_NOT_FOUND | 请求购买的产品在商店中不可用。 |
CURRENT_SUBSCRIPTION_TO_UPDATE _NOT_FOUND_IN_HISTORY | 需要替换的原始订阅在有效订阅中未找到。 |
| BILLING_SERVICE_TIMEOUT | 请求在 Google Play 响应之前已达到最大超时时间。例如,Play Billing Library 调用所请求的操作执行延迟可能导致此错误。 |
| FEATURE_NOT_SUPPORTED | 当前设备上的 Play 商店不支持所请求的功能。 |
| BILLING_SERVICE_DISCONNECTED | 客户端应用通过 BillingClient 与 Google Play 商店服务的连接已断开。 |
| BILLING_SERVICE_UNAVAILABLE | Google Play 计费服务当前不可用。大多数情况下,这意味着客户端设备与 Google Play 计费服务之间存在网络连接问题。 |
| BILLING_UNAVAILABLE | 购买过程中出现计费问题,可能原因包括: 1. 用户设备上的 Play 商店应用缺失或版本过旧。 2. 用户所在国家/地区不受支持。 3. 用户属于企业账户,管理员已禁用购买功能。 4. Google Play 无法扣款(例如信用卡已过期)。 5. 用户未登录 Play 商店应用。 |
| DEVELOPER_ERROR | API 使用方式不正确。 |
| BILLING_ERROR | Google Play 内部出现问题。 |
| ITEM_ALREADY_OWNED | 该产品已购买。 |
| ITEM_NOT_OWNED | 用户未拥有该商品,因此无法执行所请求的操作。 |
| BILLING_NETWORK_ERROR | 设备与 Play 系统之间的网络连接出现问题。 |
| NO_PRODUCT_IDS_FOUND | 付费墙中的所有产品在商店中均不可用。 如果遇到此错误,请按以下步骤排查:
|
| NO_PURCHASES_TO_RESTORE | 在 Adapty Android SDK 4.0.2 中已弃用:restorePurchases() 不再返回此错误。如果没有可恢复的购买记录,该方法会以当前用户画像成功完成,请检查其中的访问等级状态。在早期 SDK 版本中,此错误表示 Google Play 未找到可恢复的购买记录。 |
| AUTHENTICATION_ERROR | 请使用 Adapty.activate 方法正确配置 Adapty SDK。 |
| BAD_REQUEST | 请求无效。 请确保已完成与 Google Play 集成所需的所有步骤。 |
| SERVER_ERROR | 服务器错误。 |
| REQUEST_FAILED | 网络问题导致请求失败,且无法进一步确定具体原因。 |
| DECODING_FAILED | 响应解码失败。 请检查你的代码,确保发送的参数有效。例如,此错误可能表示你使用了无效的 API 密钥。 |
| ANALYTICS_DISABLED | 由于你已关闭分析功能,无法处理分析事件。 |
| WRONG_PARAMETER | 某些参数不正确:不能为空的字段为空,或类型错误等。 当 SDK 无法读取本地备用付费墙文件时也会返回此错误——通常是因为文件版本与 SDK 版本不匹配。请在看板中重新下载文件。 |
| LOGGING_OUT_UNIDENTIFIED_USER | 对从未完成身份识别的用户调用了 Adapty.logout()。请仅在 Adapty.identify 之后调用该方法。 |
流程渲染错误
Adapty SDK 4.0 及更高版本通过 AdaptyFlowEventListener 中的 onError 回调报告这些错误,而不是从方法调用中直接返回。详情请参阅在 Android SDK 中处理事件。
| 错误 | 解决方案 |
|---|---|
| WRONG_ASSET_TYPE | 流程中某个图片元素指向的资产是颜色或渐变填充,SDK 因此在该位置渲染了占位符。请在流程编辑工具中为该元素指定图片资产。 |
| JS_EXCEPTION | 流程的 JavaScript 抛出了异常。请查看错误信息中的异常详情。 |
| NAVIGATOR_NOT_FOUND | 打开页面的操作指定了一个不存在于流程视图配置中的导航器,且该流程没有可回退的 default 导航器。请在流程编辑工具中检查该操作的目标设置。 |
| INVALID_ACTION_URL | 打开 URL 的操作引用了一个无法解析为 URL 的字符串 ID。请在流程编辑工具中为该操作设置有效的 URL。 |
其他问题
如果您尚未找到解决方案,可以采取以下后续步骤:
- 将 SDK 升级到最新版本:我们始终建议升级到最新的 SDK 版本,因为它们更稳定并包含已知问题的修复。
- 联系支持团队或在支持论坛中获得其他开发者的帮助。
- 通过 support@adapty.io 或在线聊天联系支持团队:如果您还不打算升级 SDK 或升级后问题仍未解决,请联系我们的支持团队。请注意,如果您启用详细日志记录并与团队共享日志,您的问题将得到更快解决。您也可以附上相关代码片段。