使用Proguard从Android类中删除xml注释

时间:2014-05-09 15:10:52

标签: java android gradle gson proguard

我在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的文档并没有提供帮助。

1 个答案:

答案 0 :(得分:0)

Android文档介绍了如何在构建中启用ProGuard(Ant,Eclipse或Gradle)。启用后:

  1. ProGuard的缩小步骤会删除注释,如果它们在代码中似乎未使用。如果Gson使用注释,他们可能不会被删除。

  2. ProGuard的混淆步骤默认删除所有注释,除非配置指定:

    -keepattributes *Annotation*
    

    Android SDK中的全局配置文件android-sdk/tools/proguard/proguard-android.txt包含此行,因为大多数开发人员都希望保留注释。如果您将其注释掉,则会删除所有注释。