接入咪咕游戏sdk出现闪退(AndroidStudio版本),打包后so不完整

解决Android Studio游戏闪退
本文介绍了一种解决Android Studio中游戏闪退的方法,通过对比正常与异常版本,定位问题出现在so文件上,并提供了解决方案,包括临时解决和终极解决办法。

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

   

排查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'
            }
        }
    }


而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、付费专栏及课程。

余额充值