【问题标题】:How to configure 'build_common.xml' Ant file for Proguard and ORMLite in java application如何在 Java 应用程序中为 Proguard 和 ORMLite 配置“build_common.xml”Ant 文件
【发布时间】:2018-01-25 19:56:16
【问题描述】:

我有一个在 PC (Windows) 上运行的 Java 应用程序。 我使用 Netbeans。

我使用 Proguard 来混淆代码,并通过 build_common.xml (Ant) 文件配置混淆;因此 ProGuard 配置选项由 XML 配置标签给出。 我不是 Xml 方面的专家,Proguard,我只是出于我的目的复制并改编了一些从网络上获取的代码,它确实有效。

最近我在我的代码中引入了 ORMLite。当我从 IDE 运行时(所以没有混淆),我的代码可以工作,但是当我使用混淆进行构建时,它就不起作用了。 在 build_common.xml 中,我排除了“class com.j256.**”库,作者:

<keep name="com.**" >    <method name="*" />    <field name="*" />   </keep>

但这还不够,因为可能 ORMLite 使用了特殊的注释。

我发现了一些帖子,建议使用例如:

            -keepattributes *DatabaseField*
            -keepattributes *DatabaseTable*
            -keepattributes *SerializedName*
            -keep class com.j256.**
            -keepclassmembers class com.j256.** { *; }
            -keep enum com.j256.**
            -keepclassmembers enum com.j256.** { *; }
            -keep interface com.j256.**
            -keepclassmembers interface com.j256.** { *; }            
            -dontwarn com.j256.ormlite.logger.**
            -dontwarn com.j256.ormlite.misc.**  

但我不知道如何在 XML 中编写这些选项;我做了一些尝试,但没有成功。

有人可以帮忙吗?此外,关于如何从混淆 ORMLite 注释中排除。

【问题讨论】:

    标签: java xml ant proguard ormlite


    【解决方案1】:

    找到解决方案:

    只需在 'build_common.xml' 文件的 proguard 标签内添加以下行:

    -keepattributes *Annotation*            
    

    `我的问题中提到的其余几行似乎没有用

    【讨论】:

      猜你喜欢
      • 2011-10-24
      • 2014-09-28
      • 1970-01-01
      • 2012-05-15
      • 1970-01-01
      • 2021-12-29
      • 1970-01-01
      • 1970-01-01
      • 2012-02-13
      相关资源
      最近更新 更多