CrazyDailyQuestion
CrazyDailyQuestion copied to clipboard
借助addr2line,ndk-stack等方式分析adjust源码,对load so进行原理性分析,解决Adjust v2包含的so在部分6.0以下有兼容问题
1. 问题场景
fresco libimagepipeline.so在部分64位手机上有兼容问题 , 官方最新的2.0为androidx版本Adjust-v2包含的so在部分6.0以下有兼容问题NativeMethod Not Found
2. 64位手机兼容问题定位过程
- 尝试使用各种策阅回捞
crash日志,但是没有发现任何日志输出 ,导致该问题无法定位到具体原因
线上监控:
firebase 寻找线上日志
分析内存
- 闪退时,内存正常,没有内存抖动情况
分析APP启动代码
4. 逐行逐行去看启动过程native层日志输出
so库反编译
- 分析
so包 ,分析so包的加载,排查so- 分析 so 异常可以借助 addr2line 和 ndk-stack 等方式
3. 问题原因
so问题,但是日志被哪里拦截,所以启用第三方兼容测试
第一次兼容测试未能发现有帮助的日志输出 第二次兼容测试发现adjust的so异常 其中包括分析adjust源码,对so 进行try catch 处理,导致native 方法找不到
4. 最终解决方案
回退adjust版本 V3.0