我在Android Studio中设置了一个项目,该项目依赖于Gradle从远程存储库导入的jar文件。这意味着没有" / libs"文件夹中。
这个jar文件包含一堆带有xml注释的JAXB对象,如下所示:
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "Accounts", propOrder = {
"account"
})
然而,在Android方面,我使用Gson来序列化这些对象。我并不认为这些注释会成为一个问题,但Gson正在通过反思来检测它们。我想使用ProGuard删除它们,但不知道从哪里开始,或者它是否可能。
我想我想在配置文件中使用-libraryjars标志,但不知道如何获取Gradle导入的jar文件的动态路径。到目前为止,使用ProGuard for Android的文档并没有提供帮助。
答案 0 :(得分:0)
Android文档介绍了如何在构建中启用ProGuard(Ant,Eclipse或Gradle)。启用后:
ProGuard的缩小步骤会删除注释,如果它们在代码中似乎未使用。如果Gson使用注释,他们可能不会被删除。
ProGuard的混淆步骤默认删除所有注释,除非配置指定:
-keepattributes *Annotation*
Android SDK中的全局配置文件android-sdk/tools/proguard/proguard-android.txt
包含此行,因为大多数开发人员都希望保留注释。如果您将其注释掉,则会删除所有注释。