您的位置:首页 > 移动开发 > Android开发

解决Android 打包后 so文件不完整导致程序崩溃

2017-07-21 17:55 1746 查看
    最近接入国内某平台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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android gradle sdk对接