前言
集成方式:uikit模块集成
版本迭代:3.8.0→5.5.0
因为这次升级版本跨越大,且原来项目是采用模块集成,代码依赖度高,所以在这次升级过程中遇到了许多问题,在此记录总结。
1.替换完模块和jar包并处理完方法更新所带来的编译异常后,编译通过,但是application创建时crash
原因:新版的服务需要在单独的进程中进行,所以在AndroidManifest中配置云信服务时,需要加上android:process=":core",且相较于之前的版本新增了几个服务(主要还是没有详细看官方文档带来的遗漏导致的)。
解决方案:根据官方文档重新配置云信服务
2.网易云信登录不回调
原因:因为新版SDK开启了自己的进程,而每个进程初始化时都会创建application并调用其中oncreate方法里的函数,所以导致云信所在进程也加载了项目中其他模块的服务,导致冲突。
解决方案:在application的oncreate方法中添加进程判断,把不属于云信的逻辑只放在主进程中运行。
知识点:每个进程初始化时都会创建application并调用其中oncreate方法里的函数
3.开启视频时显示jar包异常,crash
原因:sdk包升级不完全,只替换了模块和jar包,没有更新.so文件
解决方案:保持模块,jia包,.so文件版本一致
知识点: 当一个应用安装在设备上,只有该设备支持的CPU架构对应的.so文件会被安装。不同CPU架构的Android手机加载时会在libs下找自己对应的目录,从对应的目录下寻找需要的.so文件;如果没有对应的目录,就会去armeabi下去寻找,如果已经有对应的目录,但是如果没有找到对应的.so文件,也不会去armeabi下去寻找了。