您的位置:首页 > 移动开发 > Android开发

Android用Proguard混淆代码遇到的…

2014-05-30 10:55 465 查看
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)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: