apk混淆后打包失败,依葫芦画瓢解决方案

这是第一篇文章,我是个理科生,文笔稍差了点,如果有没看懂的地方,可以给我留言。

最近公司一位android同事离职了,apk打包那一块以前是他做的,现在他走了,以后这一块肯定需要有人来弄,所以最近我也来弄一次,其实这个完全没有技术含量,都是一些反复的操作,但我觉得对于一些像我一样的新人来说,真的非常有用,我也是在网上查了很多资料,自己才整理出来一篇,相信对于一些简单的打包来说完全足以。好了,废话不多说了,言归正传。

  当我们打包的时候,应用中没有用到第三方的SDK包时,混淆后打包应该能正常完成,但是当我们应用中多加了一些第三方的SDK,例如百度地图、百度语音、友盟的统计和分享之类的时候,混淆后打包总会失败,截个图吧。下面是错误信息,在我们打包失败的时候,可以看到eclipse的Console栏中的错误信息(这里出错的原因是我添加了百度语音的第三方SDK包,所以代码混淆后一打包就出错了):,此时我们只需要将该工程下的libs包下面的所有第三方包(其实谷歌自带的那个android-support-v4.jar一起算进去也没问题)在文件在proguard-project.txt中注明即可,操作如下:,第一步:找到libs下面的所有jar文件包;第二步:如图所示,将这些包都在proguard-project.txt中注明。此刻咱们不用急着做第三步,现在按正常顺序打包,如果出现以下情况(没出现的则说明打包成功,无需再继续看了),则咱们一起来做第三步,出现这种情况我们做第三步,依葫芦画瓢,我们观察到Console中都出现了com.baidu.voicerecognition开头的包(其实我也注意到了,包后面的android也是一样的,大家以后也可以写完全部:com.baidu.voicerecognition.android,可以试试),那么我们就这样写

-dontwarn com.baidu.voicerecognition.**
-keep class com.baidu.voicerecognition.** { *;},把这两个加到proguard-project.txt中,此时再去打包试试,应该没问题了吧。

注意:在这里,第三步只出现了一种包名,万一以后大家遇到的是出现了两种包名,那么我们也要按这种方式都写入proguard-project.txt中,即

-dontwarn x.**

-keep class x.**{*;}

-dontwarn y.**

keep class y.**{*;}

(x和y各代表一种包名)

下一篇我会讲一下如何混淆代码的,博客的发表顺序可能有点不对,因为刚开始,条理还不是那么清楚,望大家多多理解,支持一下,谢谢!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值