【发布时间】: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