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

1 回复

更多关于uni-app android离线打包sdk3.2.3推送个信sdk初始化失败NoClassDefFoundError的实战教程也可以访问 https://www.itying.com/category-93-b0.html


这个错误表明个推SDK在运行时找不到com.igexin.base.util.IOUtils类。这是典型的依赖缺失问题,通常发生在离线打包时未正确引入个推SDK的全部依赖库。

主要原因:

  1. 缺少个推基础库gtsdk-3.2.2.0.aar本身可能依赖其他个推基础库(如getuiext-*.aarbase-*.aar),这些库未添加到项目中。
  2. 依赖冲突:项目中可能存在多个版本的个推相关库,导致类加载失败。

解决方案:

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" />
回到顶部