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

来源:互联网 发布:unity3d 联机游戏 编辑:程序博客网 时间:2024/05/21 13:59

    最近接入国内某平台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