Android 错误码
概述
本文档列出了优聚智汇 Android SDK 可能返回的错误码及其含义,帮助开发者快速排查和解决问题。
在 onLoadError 和 onAdError 回调中,开发者会收到 UjuException 对象,通过 error.code 和 error.message 获取错误信息。本文档列出了所有可能的错误码。
SDK 核心错误码
以下错误码定义在 ErrorType 枚举中,是 SDK 对外暴露的核心错误码:
| 错误码 | 枚举名 | 含义 | 可能原因 | 解决方案 |
|---|---|---|---|---|
| 0 | SUCCESS | 成功 | 操作成功 | - |
| 1000 | UNKNOWN | 未知错误 | 未知原因导致的错误 | 联系技术支持并提供日志 |
| 1001 | INIT_ERROR | 初始化失败 | appId/appKey 错误、网络问题、配置异常 | 检查 appId 和 appKey 是否正确,检查网络连接 |
| 1002 | CONFIG_ERROR | 配置参数错误 | UjuAdConfig 或 UjuAdInitConfig 参数缺失或格式错误 | 检查配置参数是否完整且正确 |
| 1003 | BIDDING_ERROR | 竞价错误 | 广告竞价流程异常 | 检查广告位配置,确认竞价策略正确 |
| 1004 | PERMISSION_DENIED | 缺少必要权限 | AndroidManifest.xml 缺少必要权限声明 | 补充 INTERNET、ACCESS_NETWORK_STATE 等权限 |
| 1005 | PARAM_ERROR | 无效的参数 | 入参校验失败,如 placementId 为空 | 检查传入参数是否有效 |
| 1030 | NETWORK_ERROR | 网络连接异常 | 无网络连接或网络超时 | 检查网络连接,稍后重试 |
| 2001 | LOAD_ERROR | 广告加载失败 | 无广告填充、适配器异常、广告位配置错误 | 检查广告位 ID,确认适配器已引入,稍后重试 |
| 2009 | SHOW_ERROR | 广告展示失败 | 广告未加载成功就调用 show、状态错误 | 确保 onLoadSuccess 后再调用 show,检查 isReady() |
| 2010 | TIMEOUT | 操作超时 | 广告请求或加载超时 | 检查网络状况,适当增加超时时间或重试 |
| 2011 | NOT_FIND_ADAPTER | 未找到适配器 | 对应广告网络的适配器未引入 | 检查 build.gradle 是否引入了对应 ADN 的适配器依赖 |
ADX 自有广告源错误码段
SDK 内部 ADX 自有广告源使用独立的错误码段,定义在 AdxErrorEnums 中:
| 错误码段 | 类别 | 说明 |
|---|---|---|
| 0 | 成功 | ADX 请求成功 |
| 1xxx | 数据相关 | 数据解析、数据格式等错误 |
| 2xxx | 视频相关 | 视频素材加载、播放等错误 |
| 3xxx | 图片相关 | 图片素材加载、渲染等错误 |
| 4xxx | 网络相关 | ADX 网络请求、连接等错误 |
| 5xxx | 上报相关 | 事件上报、追踪等错误 |
| 6xxx | Deeplink 相关 | 深度链接跳转错误 |
| 9xxx | 通用错误 | 其他未分类错误 |
错误处理最佳实践
1. 区分 onLoadError 和 onAdError
onLoadError(error: UjuException, placementId: String):广告加载阶段失败,常见错误码 1001/1002/1003/1030/2001/2011onAdError(error: UjuException):广告展示阶段失败,常见错误码 2009/2010
2. 错误日志记录
kotlin
override fun onLoadError(error: UjuException, placementId: String) {
// 记录错误码、错误信息和广告位ID,便于排查
Log.e("UjuAd", "加载失败: code=${error.code}, msg=${error.message}, pid=$placementId")
}
override fun onAdError(error: UjuException) {
// 记录展示阶段的错误
Log.e("UjuAd", "展示失败: code=${error.code}, msg=${error.message}")
}3. 重试机制
- 对于网络错误(1030)和超时(2010),可实现合理的重试机制
- 设置重试间隔和最大重试次数,避免无限重试
- 建议重试间隔 3-5 秒,最大重试 3 次
4. 常见问题排查
| 现象 | 可能错误码 | 排查方向 |
|---|---|---|
| SDK 初始化失败 | 1001 | 检查 appId/appKey/channel 是否正确 |
| 广告不加载 | 2001/2011 | 检查广告位 ID、适配器依赖是否引入 |
| 广告不展示 | 2009 | 确认 onLoadSuccess 后再 show,检查 isReady() |
| 无填充 | 2001 | 正常现象,广告库存不足,稍后重试 |
| 网络错误 | 1030 | 检查网络连接 |
| 权限错误 | 1004 | 检查 AndroidManifest.xml 权限声明 |
联系技术支持
如果您遇到无法解决的错误问题,可以通过以下方式联系技术支持:
- 邮件:marco@ujuad.com
- 工单:在优聚智汇开发者后台提交工单
- 在线客服:通过官网联系在线客服
提供错误码、错误信息、发生环境和复现步骤,有助于技术支持更快地定位和解决问题。
