Android用Proguard混淆代码遇到的… 分类: Androi...

http://my.oschina.net/u/936286/blog/175062

第一种问题:

Proguard returned with error code 1. See console

ProguardError 1  
Output:  
Note: there were 678 duplicate classdefinitions.  
Warning: library class android.content.res.XmlResourceParserextends or implements program classorg.xmlpull.v1.XmlPullParser  
Warning: library class android.content.Intent depends on programclassorg.xmlpull.v1.XmlPullParser  
Warning: library class android.content.IntentFilter depends onprogram classorg.xmlpull.v1.XmlPullParser  
Warning: library class android.content.res.ColorStateList dependson program classorg.xmlpull.v1.XmlPullParser  
Warning: library class android.graphics.drawable.BitmapDrawabledepends on program classorg.xmlpull.v1.XmlPullParser  
Warning: library class android.graphics.drawable.ColorDrawabledepends on program classorg.xmlpull.v1.XmlPullParser  
Warning: library class android.graphics.drawable.Drawable dependson program classorg.xmlpull.v1.XmlPullParser  
Warning: library class android.graphics.drawable.Drawable dependson program classorg.xmlpull.v1.XmlPullParser  
Warning: library class android.graphics.drawable.Drawable dependson program classorg.xmlpull.v1.XmlPullParser  
Warning: library class android.util.Xml depends on program classorg.xmlpull.v1.XmlPullParser  
Warning: library class android.util.Xml depends on program classorg.xmlpull.v1.XmlPullParser  
Warning: library class android.view.LayoutInflater depends onprogram classorg.xmlpull.v1.XmlPullParser  
Warning: library class android.view.LayoutInflater depends onprogram classorg.xmlpull.v1.XmlPullParser  
Warning: there were 13 instances of library classes depending onprogramclasses.  
        You must avoid suchdependencies, since the program classeswill  
        be processed, while thelibrary classes will remainunchanged.  
java.io.IOException: Please correct the above warningsfirst.  
atproguard.Initializer.execute(Initializer.java:321)  
atproguard.ProGuard.initialize(ProGuard.java:211)  
atproguard.ProGuard.execute(ProGuard.java:86)  

at proguard.ProGuard.main(ProGuard.java:492)

原因:因为工程中用了三方的解析,做混淆时没有-keep引用,就报这个错了;

解决方法:

在proguard.cfg中加入:

## kxml2-min-2.3.0.jar
-keep public class org.** {*;}这句话,就会又报一个错,如下:

第二种错误:

[2013-11-08 15:41:20 - pocketbook] Proguard returned with errorcode 1. See console
[2013-11-08 15:41:20 - pocketbook] Note: there were 678 duplicateclass definitions.
[2013-11-08 15:41:20 - pocketbook] Warning: library classandroid.content.res.XmlResourceParser extends or implements programclass org.xmlpull.v1.XmlPullParser
[2013-11-08 15:41:20 - pocketbook] Warning: library classandroid.content.Intent depends on program classorg.xmlpull.v1.XmlPullParser
[2013-11-08 15:41:20 - pocketbook] Warning: library classandroid.content.IntentFilter depends on program classorg.xmlpull.v1.XmlPullParser
[2013-11-08 15:41:20 - pocketbook] Warning: library classandroid.content.res.ColorStateList depends on program classorg.xmlpull.v1.XmlPullParser
[2013-11-08 15:41:20 - pocketbook] Warning: library classandroid.graphics.drawable.BitmapDrawable depends on program classorg.xmlpull.v1.XmlPullParser
[2013-11-08 15:41:20 - pocketbook] Warning: library classandroid.graphics.drawable.ColorDrawable depends on program classorg.xmlpull.v1.XmlPullParser
[2013-11-08 15:41:20 - pocketbook] Warning: library classandroid.graphics.drawable.Drawable depends on program classorg.xmlpull.v1.XmlPullParser
[2013-11-08 15:41:20 - pocketbook] Warning: library classandroid.graphics.drawable.Drawable depends on program classorg.xmlpull.v1.XmlPullParser
[2013-11-08 15:41:20 - pocketbook] Warning: library classandroid.graphics.drawable.Drawable depends on program classorg.xmlpull.v1.XmlPullParser
[2013-11-08 15:41:20 - pocketbook] Warning: library classandroid.util.Xml depends on program classorg.xmlpull.v1.XmlPullParser
[2013-11-08 15:41:20 - pocketbook] Warning: library classandroid.util.Xml depends on program classorg.xmlpull.v1.XmlPullParser
[2013-11-08 15:41:20 - pocketbook] Warning: library classandroid.view.LayoutInflater depends on program classorg.xmlpull.v1.XmlPullParser
[2013-11-08 15:41:20 - pocketbook] Warning: library classandroid.view.LayoutInflater depends on program classorg.xmlpull.v1.XmlPullParser
[2013-11-08 15:41:20 - pocketbook] Warning: there were 13 instancesof library classes depending on program classes.
[2013-11-08 15:41:20 - pocketbook]        You must avoid such dependencies, since theprogram classes will
[2013-11-08 15:41:20 - pocketbook]        be processed, while the library classes willremain unchanged.
[2013-11-08 15:41:20 - pocketbook] java.io.IOException: Pleasecorrect the above warnings first.
[2013-11-08 15:41:20 - pocketbook] atproguard.Initializer.execute(Initializer.java:321)
[2013-11-08 15:41:20 - pocketbook] atproguard.ProGuard.initialize(ProGuard.java:211)
[2013-11-08 15:41:20 - pocketbook] atproguard.ProGuard.execute(ProGuard.java:86)
[2013-11-08 15:41:20 - pocketbook] atproguard.ProGuard.main(ProGuard.java:492)


原因:第三方的解析和Android自带的冲突了,

解决办法:

去第三方的包中将那两个类给删掉了,就哦了;

第三:

还遇到一个小问题,我混淆时少写了一个关键字,如:-keep public class org.** {*;} 写成了-keeppublic org.** {*;}  就报了如下错误:

Proguard returned with error code 1. See console
Proguard Error 1 
Output: 
proguard.ParseException: Unexpected keyword 'org.**' in line 74 offile'E:\WorkSpace\口袋书\上线口袋书\pocketbook\proguard.cfg', 
  included from argument number2 
atproguard.ConfigurationParser.unknownAccessFlag(ConfigurationParser.java:1048) 
atproguard.ConfigurationParser.parseClassSpecificationArguments(ConfigurationParser.java:547) 
atproguard.ConfigurationParser.parseKeepClassSpecificationArguments(ConfigurationParser.java:490) 
atproguard.ConfigurationParser.parse(ConfigurationParser.java:138) 
at proguard.ProGuard.main(ProGuard.java:484)

转载于:https://www.cnblogs.com/leansmall/p/4715931.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值