Android用Proguard混淆代碼遇到的問題

第一種問題: java

Proguard returned with error code 1. See console android

Proguard Error 1 
Output: 
Note: there were 678 duplicate class definitions. 
Warning: library class android.content.res.XmlResourceParser extends or implements program class org.xmlpull.v1.XmlPullParser 
Warning: library class android.content.Intent depends on program class org.xmlpull.v1.XmlPullParser 
Warning: library class android.content.IntentFilter depends on program class org.xmlpull.v1.XmlPullParser 
Warning: library class android.content.res.ColorStateList depends on program class org.xmlpull.v1.XmlPullParser 
Warning: library class android.graphics.drawable.BitmapDrawable depends on program class org.xmlpull.v1.XmlPullParser 
Warning: library class android.graphics.drawable.ColorDrawable depends on program class org.xmlpull.v1.XmlPullParser 
Warning: library class android.graphics.drawable.Drawable depends on program class org.xmlpull.v1.XmlPullParser 
Warning: library class android.graphics.drawable.Drawable depends on program class org.xmlpull.v1.XmlPullParser 
Warning: library class android.graphics.drawable.Drawable depends on program class org.xmlpull.v1.XmlPullParser 
Warning: library class android.util.Xml depends on program class org.xmlpull.v1.XmlPullParser 
Warning: library class android.util.Xml depends on program class org.xmlpull.v1.XmlPullParser 
Warning: library class android.view.LayoutInflater depends on program class org.xmlpull.v1.XmlPullParser 
Warning: library class android.view.LayoutInflater depends on program class org.xmlpull.v1.XmlPullParser 
Warning: there were 13 instances of library classes depending on program classes. 
         You must avoid such dependencies, since the program classes will 
         be processed, while the library classes will remain unchanged. 
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) code

緣由:由於工程中用了三方的解析,作混淆時沒有-keep引用,就報這個錯了; xml

解決方法: ci

在proguard.cfg中加入: rem

## kxml2-min-2.3.0.jar
-keep public class org.** {*;}這句話,就會又報一個錯,以下: it

第二種錯誤: io

[2013-11-08 15:41:20 - pocketbook] Proguard returned with error code 1. See console
[2013-11-08 15:41:20 - pocketbook] Note: there were 678 duplicate class definitions.
[2013-11-08 15:41:20 - pocketbook] Warning: library class android.content.res.XmlResourceParser extends or implements program class org.xmlpull.v1.XmlPullParser
[2013-11-08 15:41:20 - pocketbook] Warning: library class android.content.Intent depends on program class org.xmlpull.v1.XmlPullParser
[2013-11-08 15:41:20 - pocketbook] Warning: library class android.content.IntentFilter depends on program class org.xmlpull.v1.XmlPullParser
[2013-11-08 15:41:20 - pocketbook] Warning: library class android.content.res.ColorStateList depends on program class org.xmlpull.v1.XmlPullParser
[2013-11-08 15:41:20 - pocketbook] Warning: library class android.graphics.drawable.BitmapDrawable depends on program class org.xmlpull.v1.XmlPullParser
[2013-11-08 15:41:20 - pocketbook] Warning: library class android.graphics.drawable.ColorDrawable depends on program class org.xmlpull.v1.XmlPullParser
[2013-11-08 15:41:20 - pocketbook] Warning: library class android.graphics.drawable.Drawable depends on program class org.xmlpull.v1.XmlPullParser
[2013-11-08 15:41:20 - pocketbook] Warning: library class android.graphics.drawable.Drawable depends on program class org.xmlpull.v1.XmlPullParser
[2013-11-08 15:41:20 - pocketbook] Warning: library class android.graphics.drawable.Drawable depends on program class org.xmlpull.v1.XmlPullParser
[2013-11-08 15:41:20 - pocketbook] Warning: library class android.util.Xml depends on program class org.xmlpull.v1.XmlPullParser
[2013-11-08 15:41:20 - pocketbook] Warning: library class android.util.Xml depends on program class org.xmlpull.v1.XmlPullParser
[2013-11-08 15:41:20 - pocketbook] Warning: library class android.view.LayoutInflater depends on program class org.xmlpull.v1.XmlPullParser
[2013-11-08 15:41:20 - pocketbook] Warning: library class android.view.LayoutInflater depends on program class org.xmlpull.v1.XmlPullParser
[2013-11-08 15:41:20 - pocketbook] Warning: there were 13 instances of library classes depending on program classes.
[2013-11-08 15:41:20 - pocketbook]          You must avoid such dependencies, since the program classes will
[2013-11-08 15:41:20 - pocketbook]          be processed, while the library classes will remain unchanged.
[2013-11-08 15:41:20 - pocketbook] java.io.IOException: Please correct the above warnings first.
[2013-11-08 15:41:20 - pocketbook] at proguard.Initializer.execute(Initializer.java:321)
[2013-11-08 15:41:20 - pocketbook] at proguard.ProGuard.initialize(ProGuard.java:211)
[2013-11-08 15:41:20 - pocketbook] at proguard.ProGuard.execute(ProGuard.java:86)
[2013-11-08 15:41:20 - pocketbook] at proguard.ProGuard.main(ProGuard.java:492) console


緣由:第三方的解析和Android自帶的衝突了,

解決辦法: class

去第三方的包中將那兩個類給刪掉了,就哦了;

第三:

還遇到一個小問題,我混淆時少寫了一個關鍵字,如:-keep public class org.** {*;} 寫成了-keep public org.** {*;}  就報了以下錯誤:

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

相關文章
相關標籤/搜索