有些指令需要指定一个文件路径,如果我们指定了这个指令,如果那些指令中使用了相对路径,就是相对与这个指令指示的路径, 否则就是相对于当前配置文件的路径。
-basedirectory /usr/local/share/android-sdk/tools/proguard/
从给定的配置文件中读取指令。我们可以把一些公共的配置放到一个配置文件中,然后其他的配置文件使用该指令,包含那个公共的配置文件。
-include common-proguard-config.txt
开发中用到的第三方jar
、war
、ear
、arr
等。
${classpath}
可以是文件路径也可以是目录。
示例:
-injars src/main/libs/
-injars src/main/libs/xx.jar
使用-outjars ${classpath}
指令指明的这些库,很可能会经过那四个步骤的处理,处理完后的路径用这个指令指明。
${classpath}
可以是文件路径也可以是目录。
示例:
-outjars build/libs/
-outjars build/libs/xx.jar
使用-libraryjars ${classpath}
指令指明的这些库,是-injars ${classpath}
指明的这些库需要的, 也是我们的代码需要的,它不会经过四个步骤的处理,原样输出。在Android
开发中,就是Framework API
的jar
包。
示例:
-libraryjars /usr/local/share/android-sdk/platforms/android-25/android.jar
事实上,在Android
开发中,你根本不用配置它,gradle
的android
插件已经自动根据build.gradle
中的配置为我们添加了。
此指令指示,在处理过程中会有日志输出,一般是开启此指令,一般出现问题后通过日志找到原因。
将已解析过的配置标准输出到指定的文件。该选项可用于调试配置。
示例:
-printconfiguration xx.txt
输出类文件的内部结构到给定的文件中。
示例:
-dump dump.txt
指定配置中潜在错误或遗漏时不打印相关信息。类名错误或遗漏选项时这些信息可能会比较有用。class_filter
是一个可选的正则表达式。
示例:
-dontwarn android.**
指定找不到引用或其他重要问题时不打印警告信息。class_filter
是一个可选的正则表达式。
示例:
-dontwarn android.**
ProGuard
运行过程中,可能会出现两种信息:Note
和Warning
,Note
不会导致程序终止,而Warning
会导致程序终止,所以,一旦运行出错了, 就要找Warning
,把它解决掉,就可以顺利执行了。