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

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