-libraryjars <java.home>/lib/rt.jar
在Proguard文档中提到,使用-libraryjars选项添加项目中的jar文件。但我已将库jar包添加到libs文件夹中,从未使用过该选项。这些jar文件中的文件总是与其他代码一起混淆。我从未更改过Proguard默认设置,唯一需要做的是通过使用-keep命令来移除某些类的修改以避免错误。这些类与序列化或GSON库等问题有关。以下是一些示例,说明如何使用-keep命令从混淆过程中移除类。
-keep class sun.misc.Unsafe { *; }
-keep class com.google.gson.stream.** { *; }
-keep class com.myproject.testproject.MainActivity$TestObject { *; }
相比之下,我不理解示例代码中 `-libraryjars` 行的目的。即使不使用此行,在 Android 项目的 libs 文件夹中添加的所有 jar 包都可以轻松混淆处理,所以这个行有何用处呢?
-libraryjars
处理第二种情况。必须始终包括指向 Java 运行时路径的-libraryjars
,因为它是运行代码所必需的。其他库可能存在许可限制,这意味着您不能将其捆绑和混淆,或者可能由框架在运行时提供 - 例如 Servlet API。 - Boris the Spider