最近接入国内某平台sdk的时候,一直崩溃。报的sdk里so文件的错误
但是他的demo可以正常运行,然后就找原因,把apk解压之后 发现有一个so文件小了好多,正常700K,结果只有70K,明显不正常。
在build路径下搜索这个so文件,在StripDebugSymbol这个文件夹下发现了缩小了的so文件。而他们demo中没有这个文件夹。
于是发现是gradle中transformNaive_libsWithStripDebugSymbolForXXXX这个task导致的。
解决办法 一
task moveLibToTrip(type: Copy) { from "$buildDir/intermediates/transforms/mergeJniLibs/xxxx/release/folders/2000/1f" + "/main/lib/armeabi/xxx.so" into "$buildDir/intermediates/transforms/stripDebugSymbol/xxxx/release/folders/2000/1f" + "/main/lib/armeabi/" } task moveLibToTrip2(type: Copy) { from "$buildDir/intermediates/transforms/mergeJniLibs/xxxx/release/folders/2000/1f" + "/main/lib/armeabi-v7a/libmg20pbase.so" into "$buildDir/intermediates/transforms/stripDebugSymbol/xxxx/release/folders/2000/1f" + "/main/lib/armeabi-v7a/" } afterEvaluate { tasks.matching { it.name.startsWith('process') && (it.name.endsWith('ReleaseJavaRes') || it.name.endsWith ('DebugJavaRes')) }.each { tk -> tk.dependsOn(moveLibToTrip,moveLibToTrip2) } } 在app下的gradle写两个task 把正常的so文件拷贝到那个文件夹下 方法 二 把ndk禁用了 原因不知 反正禁用了就没这个task了 编译也正常 参考链接:http://blog.csdn.net/zhangbuzhangbu/article/details/52771050