注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

是缘是情是童真

如果你用笑脸面对 你会看见别人的笑脸

 
 
 

日志

 
 

Android项目proguard后。。。  

2013-04-12 14:56:50|  分类: 默认分类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
一直对代码混淆有所耳闻,但是一直以来,都没去使用并仔细琢磨,正好这些天有时间,决定把这个东西搞定。

原以为这东西拿来就可以用,不曾想啊,打包的时候各种报错。。。

比如:Proguard returned with error code 1. See console Proguard Error 1 ;
没办法,上网各种找资料,各种各种。。。终于成功混淆打包,功夫不负有心人。

使用到的方法:
1、用-dontoptimize代替 -dontpreverify。

2、下载最新的proguard4.6,解压后,将其中的bin包和lib包覆盖\android\android-sdk-windows\tools\proguard中的bin和lib包。

3、对第三方jar的使用配置:
-libraryjars ./libs/javabase64-1.3.1.jar
-keep public class it.sauronsoftware.base64.Base64.** { public protected *; }
-keep public class it.sauronsoftware.base64.** { public protected *; }

4、有些jar包引用,官方文档里面会给出混淆的配置,但是使用了,还是给报错了,这就让人很蛋疼了,可是没办法啊,你要用他的jar包,还是根据错误提示来进行相关配置吧。比如下面的错误
Proguard returned with error code 1. See console
Proguard Error 1 
Output: 
Warning: com.tencent.open.TDialog$FbWebViewClient: can't find referenced class android.net.http.SslError 
      You should check if you need to specify additional program jars. 
Warning: there were 1 unresolved references to classes or interfaces. 
         You may need to specify additional library jars (using '-libraryjars'). 
java.io.IOException: Please correct the above warnings first. 
at proguard.Initializer.execute(Initializer.java:321) 
at proguard.ProGuard.initialize(ProGuard.java:211) 
at proguard.ProGuard.execute(ProGuard.java:86) 
at proguard.ProGuard.main(ProGuard.java:492)
官方文档给出的混淆配置是:
-keep class com.tencent.open.TDialog$*
-keep class com.tencent.open.TDialog$* {*;}
但是报了这个错,所以我又加上了这二句配置:
-dontwarn com.tencent.open.TDialog$*
-dontwarn com.tencent.open.TDialog.**

网上面给的解释是:其实找不到引用的这个类是第三方包里面的,而且很多时候我们只需要打乱自己的代码就行了,第三方包的代码就是否要打乱就不要管了。嘻嘻,这叫做"只扫自己门前雪,甭管他人瓦上霜",
我们可以使用
-dontwarn com.xx.bbb.**
-keep class com.xx.bbb.** { *;}

参数来保持第三方库中的类而不乱,-dontwarn和-keep 结合使用,意思是保持com.xx.bbb.**这个包里面的所有类和所有方法而不混淆,接着还叫ProGuard不要警告找不到com.xx.bbb.**这个包里面的类的相关引用。

OK。通过这些步骤配置后,终于可以混淆打包了,了却一桩心愿。哈哈~~

参考:http://blog.csdn.net/u_xtian/article/details/7495023
http://www.eoeandroid.com/forum.php?mod=viewthread&tid=157206
http://hsx9566.iteye.com/blog/1142002
  评论这张
 
阅读(1042)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017