tinker 8.0系统上bug定位

发布tinker碰到如下问题,并且只在8.0系统上发生

Shared library "/data/app/*******-Z5ZCyS3XSWi-YuHiG2CFGQ==/lib/arm/libbridge.so" already opened by ClassLoader 0x2b7; can't open in ClassLoader 0xff912a74 ****.jni.JNIUtils.<clinit>(JNIUtils.java:15)

打开补丁包一看里面包含了一些so文件,而这些so并没有修改,这是为什么呢....

对比base包和新打出来的包发现一些so大小不一样.....

初步猜想是AS的配置有关系,base的包是同事的机器上面打的,在他上面打出来的patch就不包含未修改的so

因为我电脑上打出来的有些so和他电脑上面打出来的大小不一样。

所以以后打好patch包一定要检查有没有把一些未修改的so打入,如果一直莫名其妙被打入,可以在tinker中把so的变动忽略掉。

到底是AS哪里的配置导致的现在还没查出来,后面会继续追究。

8.0上面的这个so被重复加载的bug,猜想仅刚刚修复完成的时候tinker把当前的进程kill掉引起的,后面不会再出现了

 

总结:发热修复需要检查有没有多余的so被打入patch,如果打入了在8.0上回引起同个so被多个classloader打开的异常。

待确认问题:

1.    8.0机型上面如何复现

2.    为什么不同的机器上打出来包有些so大小不一样

阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页