问题描述
在接入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文件添加到该选项中,即可避免。
网友评论