集成腾讯移动推送报java.lang.NoClassDefFoundError错误

集成文档:

        移动推送 Android SDK 发布动态-产品动态-文档中心-腾讯云

遇到的问题

1.安全合规扫描遇到内部数据交互安全之Service组件导出风险

经分析,是腾讯推送中出现的问题

PushMessageHandler -- 第三方SDK-小米推送:com.tencent.tpns:xiaomi:1.2.1.2-release
CommandClientService -- 第三方SDK-vivo推送:com.tencent.tpns:vivo:1.2.1.2-release
NotificationService -- 第三方SDK-魅族推送:com.tencent.tpns:meizu:1.2.1.2-release
HmsMsgService  -- 第三方SDK-华为推送:com.tencent.tpns:huawei:1.2.1.3-release

分析官网sdk,发现高版本中已修改了这个安全合规的问题,于是进官网找到最新的版本号1.3.9.0 (目前最高)

2.切换到1.3.9.0之后,修改完被更新的方法,如有些方法需要传context,有的需要添加方法

    // 小米
    api "com.tencent.tpns:xiaomi:1.3.9.0-release"
    // 魅族
    api "com.tencent.tpns:meizu:1.3.9.0-release"
    // OPPO
    api "com.tencent.tpns:oppo:1.3.9.0-release"
    // vivo
    api "com.tencent.tpns:vivo:1.3.9.0-release"
    // 华为
    api 'com.tencent.tpns:huawei:1.3.9.0-release'

3.修改完成之后编译通过,运行成功,但是在执行推送sdk初始化的时候报错

 java.lang.NoClassDefFoundError错误

Java虚拟机在编译时能找到合适的类,而在运行时不能找到合适的类导致的错误

经分析,是缺少commons-codec 导致

添加依赖:

    implementation 'commons-codec:commons-codec:1.15'

你可能感兴趣的:(Android:应用篇,java,Android)