CrazyDailyQuestion icon indicating copy to clipboard operation
CrazyDailyQuestion copied to clipboard

借助addr2line,ndk-stack等方式分析adjust源码,对load so进行原理性分析,解决Adjust v2包含的so在部分6.0以下有兼容问题

Open MicroKibaco opened this issue 5 years ago • 0 comments

1. 问题场景

  1. fresco libimagepipeline.so 在部分64位手机上有兼容问题 , 官方最新的2.0androidx版本
  2. Adjust-v2 包含的so在部分6.0以下有兼容问题 NativeMethod Not Found image

2. 64位手机兼容问题定位过程

  1. 尝试使用各种策阅回捞crash日志,但是没有发现任何日志输出 ,导致该问题无法定位到具体原因

线上监控:

firebase 寻找线上日志

分析内存

  1. 闪退时,内存正常,没有内存抖动情况

分析APP启动代码

4.  逐行逐行去看启动过程native层日志输出

so库反编译

  1. 分析so包 ,分析so包的加载,排查so
    • 分析 so 异常可以借助 addr2line 和 ndk-stack 等方式

3. 问题原因

so问题,但是日志被哪里拦截,所以启用第三方兼容测试

第一次兼容测试未能发现有帮助的日志输出 第二次兼容测试发现adjust的so异常 其中包括分析adjust源码,对so 进行try catch 处理,导致native 方法找不到

4. 最终解决方案

回退adjust版本 V3.0

MicroKibaco avatar Jul 28 '20 16:07 MicroKibaco