-injars Androidtest.jar "jar Package Address"
-outjars out "Output address"
The jar of the library referenced by-libraryjars ' D:\android-sdk-windows\platforms\android-9\android.jar ', used to parse the jar class specified by Injars "
-optimizationpasses 5
-dontusemixedcaseclassnames "does not produce a variety of class names when confused"
-dontskipnonpubliclibraryclasses "Specifies that non-public library classes are not ignored. 】
-dontpreverify "No pre-check"
-verbose
-optimizations!code/simplification/arithmetic,!field/*,!class/merging/* "Optimization"
-keep public class * extends Android.app.Activity "Do not confuse and remain as is"
-keep public class * extends Android.app.Application
-keep public class * extends Android.app.Service
-keep public class * extends Android.content.BroadcastReceiver
-keep public class * extends Android.content.ContentProvider
-keep public class * extends Android.app.backup.BackupAgentHelper
-keep public class * extends Android.preference.Preference
-keep public class Com.android.vending.licensing.ILicensingService
-keep Public Abstract Interface com.asqw.android.listener{
Public protected <methods>; "All methods are not confused"
}
-keep public class com.asqw.android{
public void Start (java.lang.String); "No confusion with this method"
}
-keepclasseswithmembernames class * {"protects the name of a member of a specified class and class if all the specified class members are present (after the compression step)"
Native <methods>;
}
-keepclasseswithmembers class * {"Protects the members of the specified class and class, but the condition is that all specified classes and class members are to be present." 】
Public <init> (Android.content.Context, Android.util.AttributeSet);
}
-keepclasseswithmembers class * {
Public <init> (Android.content.Context, Android.util.AttributeSet, int.);
}
-keepclassmembers class * extends Android.app.Activity {"Protects members of a specified class if this class is protected they will be better protected"
public void * (Android.view.View);
}
-keepclassmembers enum * {
public static **[] values ();
public static * * VALUEOF (java.lang.String);
}
-keep class * Implements Android.os.Parcelable {"Protection of members of specified class files and classes"
public static final Android.os.parcelable$creator *;
}
Reference:http://blog.csdn.net/vrix/article/details/7100841
Several exceptions that often occur after adding a third-party jar package:
Proguard returned with error code 1.See console
Scenario 1:
Proguard returned with error code 1. See console
Error:c:/documents (the system cannot find the specified file)
Later found because the entire project was put on the desktop, and the desktop directory is c:/documents and settings/administrator/desktop, in which there are spaces, and proguard to compile the time is not allowed to have spaces
If the correct path is not good enough, delete Proguard directly.
Note: The SDK and program paths are best not to have whitespace
Scenario 2:
Proguard returned with error code 1. See console
Abnormal:
Java.lang.ArrayIndexOutOfBoundsException
Workaround: Change "-dontpreverify" in Proguard.cfg to "-dontoptimize"
Reference article: http://groups.google.com/group/android-developers/browse_thread/thread/eca3b0f5ce6ad00f
I delete the Proguard folder (which is empty at this time) in the project and then run the project again, OK.
Scenario 3:
[2011-10-21 13:22:32-zmksmarket_build_v1.0] Proguard returned with error code 1. See console
[2011-10-21 13:22:32-zmksmarket_build_v1.0] java.io.IOException:Can ' t read [[email protected]] (No such file or Directo Ry
[2011-10-21 13:22:32-zmksmarket_build_v1.0]
At Proguard. Inputreader.readinput (inputreader.java:230)
[2011-10-21 13:22:32-zmksmarket_build_v1.0]
At Proguard. Inputreader.readinput (inputreader.java:200)
[2011-10-21 13:22:32-zmksmarket_build_v1.0]
At Proguard. Inputreader.readinput (inputreader.java:178)
[2011-10-21 13:22:32-zmksmarket_build_v1.0]
At Proguard. Inputreader.execute (inputreader.java:100)
[2011-10-21 13:22:32-zmksmarket_build_v1.0]
At Proguard. Proguard.readinput (proguard.java:195)
[2011-10-21 13:22:32-zmksmarket_build_v1.0]
At Proguard. Proguard.execute (proguard.java:78)
[2011-10-21 13:22:32-zmksmarket_build_v1.0]
At Proguard. Proguard.main (proguard.java:499)
The reason for throwing such an exception is that the reference path of the third-party jar is incorrect, and the jar package that needs to be ignored is not found.
Android Obfuscation file proguard.cfg detailed (reprint)