android 导入项目残缺,接入咪咕游戏sdk出现闪退(AndroidStudio版本),打包后so不完整…

  • Post author:
  • Post category:其他


习惯了使用AndroidStudio开发,多渠道打包实在是太方便了,可是在使用Androidstudio却发现接入的游戏出现闪退,而在在eclipse下正常运行。分析可能是Androidstudio版本的问题,换了版本并且删了配置,暂时解决了问题,不过使用后升级后又遇到问题,只有对正常的版本和不正常的版本对比,发现不正常的版本里面的so大小不正确,出现残缺。

c0ed4cb207b0758aa64907dc6f82dc45.png

排查gradle构建时生成stripDebugSymbol内之前,so都是完整的,只有这里的so的大小和md5和最后的debug版本的so一致。故只要在最后生成apk前删除这个目录下的so并且,把项目下的so拷贝过去,就可解决问题。

修改项目的 build.gradle,添加project.afterEvaluate {

packageDebug.doFirst {

delete{

delete ‘build/intermediates/transforms/stripDebugSymbol/debug/0/lib/armeabi’

}

copy{

from ‘src/main/jniLibs/armeabi’

into ‘build/intermediates/transforms/stripDebugSymbol/debug/0/lib/armeabi/’

include ‘*.so’

}

}

}

438806f19a72977f766d86a15e6296bb.png

而Release版本只需要把红色标注的debug修改为release即可。删除项目build目录重新编译运行,此时build/intermediates/transforms/stripDebugSymbol/debug/0/lib/armeabi/

目录下so完整,app可以正常运行。

这样做局限性比较多,且对于多于渠道打包需要运行时才能修改。

终极解决方案packagingOptions {

doNotStrip “**/*.so”

}

删除项目build目录重新编译运行即可。