Tencent / tinker

Tinker is a hot-fix solution library for Android, it supports dex, library and resources update without reinstall apk.
Other
17.14k stars 3.33k forks source link

使用tinker更新so文件, 会覆盖掉所有的so文件, 导致crash #1024

Open dujp opened 5 years ago

dujp commented 5 years ago

crash信息:

audio_recorder(1394)

java.lang.UnsatisfiedLinkError Can not load ne_audio library.

这个是tinkerpatch下的so_log.txt文件, 可以看出, 没有差异的文件, 但是diffSize也出现了值 lib/arm64-v8a/libagora-crypto.so, oldSize=1771216, newSize=1771216, diffSize=1846 lib/arm64-v8a/libagora-rtc-sdk-jni.so, oldSize=12318008, newSize=12318008, diffSize=12091 lib/arm64-v8a/libBugly.so, oldSize=166064, newSize=166064, diffSize=291 lib/arm64-v8a/libijkffmpeg.so, oldSize=5381488, newSize=5381488, diffSize=5357 lib/arm64-v8a/libijkplayer.so, oldSize=364944, newSize=364944, diffSize=484 lib/arm64-v8a/libijksdl.so, oldSize=481352, newSize=481352, diffSize=596 lib/arm64-v8a/liblocSDK7b.so, oldSize=43112, newSize=43112, diffSize=172 lib/arm64-v8a/libnama.so, oldSize=2729064, newSize=2729064, diffSize=2775 lib/arm64-v8a/libne_audio.so, oldSize=0, newSize=1273784, diffSize=0 lib/arm64-v8a/libnrtc_sdk.so, oldSize=7953792, newSize=7953792, diffSize=7843 lib/arm64-v8a/libpl_droidsonroids_gif.so, oldSize=42864, newSize=42864, diffSize=167 lib/arm64-v8a/libucrop.so, oldSize=886640, newSize=886640, diffSize=989 lib/arm64-v8a/libweibosdkcore.so, oldSize=30232, newSize=30232, diffSize=159 lib/armeabi-v7a/libagora-crypto.so, oldSize=1478360, newSize=1478360, diffSize=1564 lib/armeabi-v7a/libagora-rtc-sdk-jni.so, oldSize=8144324, newSize=8144324, diffSize=8035 lib/armeabi-v7a/libBugly.so, oldSize=144964, newSize=144964, diffSize=272 lib/armeabi-v7a/libijkffmpeg.so, oldSize=4403972, newSize=4403972, diffSize=4410 lib/armeabi-v7a/libijkplayer.so, oldSize=260968, newSize=260968, diffSize=383 lib/armeabi-v7a/libijksdl.so, oldSize=218832, newSize=218832, diffSize=345 lib/armeabi-v7a/liblocSDK7b.so, oldSize=30624, newSize=30624, diffSize=161 lib/armeabi-v7a/libnama.so, oldSize=1775740, newSize=1775740, diffSize=1851 lib/armeabi-v7a/libne_audio.so, oldSize=0, newSize=753028, diffSize=0 lib/armeabi-v7a/libnrtc_sdk.so, oldSize=6273740, newSize=6273740, diffSize=6217 lib/armeabi-v7a/libpl_droidsonroids_gif.so, oldSize=34336, newSize=34336, diffSize=158 lib/armeabi-v7a/libucrop.so, oldSize=525836, newSize=525836, diffSize=640 lib/armeabi-v7a/libweibosdkcore.so, oldSize=25848, newSize=25848, diffSize=158

tys282000 commented 5 years ago

大小一样也有diff差异可能是strip的时候在不同的机器或者编译环境下编译产生的结果不同,可以用beyondcompare确认一下。

加载失败的问题可以检查一下代码里在app初始化之后有没有调这个函数: TinkerLoadLibrary.installNativeLibraryABIWithoutTinkerInstalled 多架构的话abi那个参数填BUILD.CPU_ABI就好。