@ filename | Short for '-include filename'. |
-include filename | Read configuration options from the given file. |
-basedirectory directoryname | Specifies the base directory for subsequent relative file names. |
-injars class_path | Specifies the program jars (or apks, aabs, aars, wars, ears, jmods, zips, or directories). |
-outjars class_path | Specifies the names of the output jars (or apks, aabs, aars, wars, ears, jmods, zips, or directories). |
-libraryjars class_path | Specifies the library jars (or apks, aabs, aars, wars, ears, jmods, zips, or directories). |
-skipnonpubliclibraryclasses | Ignore non-public library classes. |
-dontskipnonpubliclibraryclasses | Don't ignore non-public library classes (the default). |
-dontskipnonpubliclibraryclassmembers | Don't ignore package visible library class members. |
-keepdirectories [directory_filter] | Keep the specified directories in the output jars (or wars, ears, zips, or directories). |
-target version | deprecated Set the given version number in the processed classes. |
-forceprocessing | Process the input, even if the output seems up to date. |
-keep [,modifier,...] class_specification | Preserve the specified classes and class members. |
-keepclassmembers [,modifier,...] class_specification | Preserve the specified class members, if their classes are preserved as well. |
-keepclasseswithmembers [,modifier,...] class_specification | Preserve the specified classes and class members, if all of the specified class members are present. |
-keepnames class_specification | Preserve the names of the specified classes and class members (if they aren't removed in the shrinking step). |
-keepclassmembernames class_specification | Preserve the names of the specified class members (if they aren't removed in the shrinking step). |
-keepclasseswithmembernames class_specification | Preserve the names of the specified classes and class members, if all of the specified class members are present (after the shrinking step). |
-if class_specification | Specify classes and class members that must be present to activate the subsequent keep option. |
-printseeds [filename] | List classes and class members matched by the various -keep options, to the standard output or to the given file. |
-dontshrink | Don't shrink the input class files. |
-printusage [filename] | List dead code of the input class files, to the standard output or to the given file. |
-whyareyoukeeping class_specification | Print details on why the given classes and class members are being kept in the shrinking step. |
-dontoptimize | Don't optimize the input class files. |
-optimizations optimization_filter | The optimizations to be enabled and disabled. |
-optimizationpasses n | The number of optimization passes to be performed. |
-assumenosideeffects class_specification | Assume that the specified methods don't have any side effects, while optimizing. |
-assumenoexternalsideeffects class_specification | Assume that the specified methods don't have any external side effects, while optimizing. |
-assumenoescapingparameters class_specification | Assume that the specified methods don't let any reference parameters escape to the heap, while optimizing. |
-assumenoexternalreturnvalues class_specification | Assume that the specified methods don't return any external reference values, while optimizing. |
-assumevalues class_specification | Assume fixed values or ranges of values for primitive fields and methods, while optimizing. |
-allowaccessmodification | Allow the access modifiers of classes and class members to be modified, while optimizing. |
-mergeinterfacesaggressively | Allow any interfaces to be merged, while optimizing. |
-dontobfuscate | Don't obfuscate the input class files. |
-printmapping [filename] | Print the mapping from old names to new names for classes and class members that have been renamed, to the standard output or to the given file. |
-applymapping filename | Reuse the given mapping, for incremental obfuscation. |
-obfuscationdictionary filename | Use the words in the given text file as obfuscated field names and method names. |
-classobfuscationdictionary filename | Use the words in the given text file as obfuscated class names. |
-packageobfuscationdictionary filename | Use the words in the given text file as obfuscated package names. |
-overloadaggressively | Apply aggressive overloading while obfuscating. |
-useuniqueclassmembernames | Ensure uniform obfuscated class member names for subsequent incremental obfuscation. |
-dontusemixedcaseclassnames | Don't generate mixed-case class names while obfuscating. |
-keeppackagenames [package_filter] | Keep the specified package names from being obfuscated. |
-flattenpackagehierarchy [package_name] | Repackage all packages that are renamed into the single given parent package. |
-repackageclasses [package_name] | Repackage all class files that are renamed into the single given package. |
-keepattributes [attribute_filter] | Preserve the given optional attributes; typically Exceptions , InnerClasses , Signature , Deprecated , SourceFile , SourceDir , LineNumberTable , LocalVariableTable , LocalVariableTypeTable , Synthetic , EnclosingMethod , and *Annotation* . |
-keepparameternames | Keep the parameter names and types of methods that are kept. |
-renamesourcefileattribute [string] | Put the given constant string in the SourceFile attributes. |
-adaptclassstrings [class_filter] | Adapt string constants in the specified classes, based on the obfuscated names of any corresponding classes. |
-keepkotlinmetadata deprecated | Keep and adapt Kotlin metadata. |
-adaptresourcefilecontents [file_filter] | Update the contents of the specified resource files, based on the obfuscated names of the processed classes. |
-dontpreverify | Don't preverify the processed class files. |
-microedition | Target the processed class files at Java Micro Edition. |
-android | Target the processed class files at Android. |
-verbose | Write out some more information during processing. |
-dontnote [class_filter] | Don't print notes about potential mistakes or omissions in the configuration. |
-dontwarn [class_filter] | Don't warn about unresolved references at all. |
-ignorewarnings | Print warnings about unresolved references, but continue processing anyhow. |
-printconfiguration [filename] | Write out the entire configuration, in traditional ProGuard style, to the standard output or to the given file. |
-dump [filename] | Write out the internal structure of the processed class files, to the standard output or to the given file. |
-addconfigurationdebugging | Instrument the processed code with debugging statements that print out suggestions for missing ProGuard configuration. |
-optimizeaggressively | Enables more aggressive assumptions during optimization |