我使用ProGuard GUI来混淆我的罐子,但我遇到了一些麻烦。关于我的jar的特别之处在于我使用库javafx和jdom2。
到目前为止我做了什么:
我不知道如何填写此表单以使其正常工作。我尝试了几件事,但我不断得到不同的错误。
你有经验吗?
答案 0 :(得分:2)
如果您的代码在没有proguard的情况下正常工作,则必须在您的proguard offuscation列表中排除外部依赖关系。
在正常情况下,proguard会尝试去除所有。 尝试添加到您的proguard配置文件:
-dontoptimize
-libraryjars <java.home>/lib/rt.jar
-libraryjars <java.home>/lib/ext/jfxrt.jar
-libraryjars <java.home>/lib/jce.jar
# Save meta-data for stack traces
-renamesourcefileattribute SourceFile
-keepattributes SourceFile,LineNumberTable
# Rename FXML files together with related views
-adaptresourcefilenames **.fxml,**.png,**.css
-adaptresourcefilecontents **.fxml
-adaptclassstrings
# Keep all annotations and meta-data
-keepattributes *Annotation*,Signature,EnclosingMethod
# Keep entry-point class
-keep class com.zenjava.test.javafx_and_proguard.MainApp {
public static void main(java.lang.String[]);
}
# Keep all classes inside application
-keep,allowobfuscation class com.zenjava.test.javafx_and_proguard.** {
}
# Keep names of fields marked with @FXML attribute
-keepclassmembers class * {
@javafx.fxml.FXML *;
}