android studio反编译 apk so 异常unused DT entry

问题描述

在接入SDK时,编译无错,但是运行闪退。解压生成的apk文件发现,原jniLibs目录下的.so文件被复制到了apk中,但是文件大小差距悬殊。

在反编译的重编译一直这个 libmg20pbase.so 异常。

解决方法

Android Studio 2.3及之后的版本中,默认会对所有的.so文件进行压缩。

例如在接入中国移动支付SDK时,多个so被压缩,其中libmg20pbase.so原来接近700K的体积,被压缩到了70K,.so文件不完整,导致找不到对应的方法而闪退。

解决方法是在build.gradle文件android中添加

packagingOptions { doNotStrip "*/armeabi/*.so" }

将所有压缩后出错的.so文件添加到该选项中,即可避免。

你可能感兴趣的:(android studio反编译 apk so 异常unused DT entry)