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

习惯了使用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目录重新编译运行即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值