uni-app android离线打包sdk3.2.3推送个信sdk初始化失败NoClassDefFoundError
uni-app android离线打包sdk3.2.3推送个信sdk初始化失败NoClassDefFoundError
| 开发环境 | 版本号 | 项目创建方式 |
|---|---|---|
| Mac | 11.3.1 | HBuilderX |
操作步骤:
使用了sdk3.2.3版本,更换了当前使用的所有sdk,包括aps-unipush-release.aar。这次更新sdk后发现需要配置GEXIN_APPID,并且需要引入gtsdk-3.2.2.0.aar,不引入则无法启动app。引入后仍然无法初始化推送,查看日志发现,在推送初始化这里报java.lang.NoClassDefFoundError: Failed resolution of: Lcom/igexin/base/util/IOUtils;
预期结果:
推送正常初始化
实际结果:
推送不能初始化,推送功能不正常。
bug描述:
android离线打包无法初始化推送,报异常
java.lang.NoClassDefFoundError: Failed resolution of: Lcom/igexin/base/util/IOUtils;
W/System.err: at com.igexin.push.core.d.c.a(Unknown Source:45)
W/System.err: at com.igexin.push.core.d.c.a(Unknown Source:11)
W/System.err: at com.igexin.sdk.PushManager.getClientid(Unknown Source:138)
W/System.err: at io.dcloud.feature.unipush.GTPushService.getClientInfo(GTPushService.java:77)
W/System.err: at io.dcloud.feature.aps.AbsPushService.getClientInfoAsync(AbsPushService.java:82)
W/System.err: at io.dcloud.feature.aps.PushManager.execute(PushManager.java:143)
更多关于uni-app android离线打包sdk3.2.3推送个信sdk初始化失败NoClassDefFoundError的实战教程也可以访问 https://www.itying.com/category-93-b0.html
更多关于uni-app android离线打包sdk3.2.3推送个信sdk初始化失败NoClassDefFoundError的实战教程也可以访问 https://www.itying.com/category-93-b0.html
这个错误表明个推SDK在运行时找不到com.igexin.base.util.IOUtils类。这是典型的依赖缺失问题,通常发生在离线打包时未正确引入个推SDK的全部依赖库。
主要原因:
- 缺少个推基础库:
gtsdk-3.2.2.0.aar本身可能依赖其他个推基础库(如getuiext-*.aar或base-*.aar),这些库未添加到项目中。 - 依赖冲突:项目中可能存在多个版本的个推相关库,导致类加载失败。
解决方案:
1. 检查并补全依赖库 从uni-app官方SDK下载包中确认是否包含以下文件(版本号可能略有差异):
gtsdk-3.2.2.0.aar(主SDK)getuiext-4.3.0.0.aar(扩展库)base-1.1.1.0.aar(基础库,很可能包含缺失的IOUtils类)
将以上所有aar文件复制到Android Studio项目的libs目录下,并在app/build.gradle中添加依赖:
implementation fileTree(dir: 'libs', include: ['*.aar'])
2. 验证GEXIN_APPID配置
确保在AndroidManifest.xml中正确配置了GEXIN_APPID:
<meta-data
android:name="GEXIN_APPID"
android:value="你的个推APPID" />

