记一次集成网易云信avchatkit组件填坑

       项目中有用到网易云信即时通讯的功能,之前是只有聊天功能的,最近领导要求接入音视频聊天功能,于是准备集成网易云信的音视频组件,接着,问题就出现了。

1、看到这个问题,第一想法是可能组件导入有问题,于是查看了avchatkit版本,发现从官网上只能下载到7.6.0的组件包,但是我之前导入的uikit是7.2.0的,当时感觉可能是版本不一致导致的,于是找到网易云信客服,要到了7.2.0的demo,迫不及待的导入项目中,结果,还是一样的错误。傻眼了。于是接着开始想其它办法

2、又考虑可能是so的问题,于是把so删除从新导入依旧不行。

3、因为报错中有Didn't find class "com.netease.nimlib.sdk.avchat.AVChatManager" on path:DexPathList[[zip file ***]]的错误,所以一度认为是分包的问题,但是检查之后发现项目中是有做分包处理的。

3、仔细看错误日志会发现,报的是NoClassDefFoundError错误,而不是ClassNotFoundException,所以可能一开始的出发点就错了,在网上了解了NoClassDefFoundError和ClassNoFoundException的区别。https://blog.csdn.net/qq_33543634/article/details/81128096,感觉可能还是jar报的问题,于是接着研究网易云信的demo,发现云信demo的主module中导入了avchatkit组件中已经导入过的nim-avchat-7.2.0.jar和nrtc-sdk.jar,这一步是为什么呢?明明在module中已经导入了,为什么要重复导入呢?终于发现问题了。

compileOnly:只在编译时有效,不会参与打包

为了防止多个库都使用了云信的sdk导致jar包冲突。编译时不会报错,实际运行时不会把依赖打包进apk,所以会出现找不到类的错误。需要把avchatkit中使用compileOnly依赖的jar包拷贝到自己项目的libs中。

把jar包放在主module中依赖一下就可以了。个人经验,能力有限,不足之处望多包涵...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值