2017-06-03 76 views
-7

即時通訊使用ProGuard GUI混淆我的jar,但我有一些麻煩。關於我的jar的特別之處是我使用庫javafx和jdom2。ProGuard與JavaFX和JDOM2

我做了什麼至今:

  • 加入輸入罐子
  • 新增輸出罐子
  • 新增的庫rt.jar中,JDOM-2.0.6.jar,jfxrt.jar

我不知道如何填寫此表格以使其正常工作。我嘗試了幾件事,但我不斷收到不同的錯誤。

UI Obfuscation

你有任何與它的經驗?

+2

「你有任何與它的經驗嗎?」不是一個真正的問題,「我不斷得到不同的錯誤」不是一個真正的問題描述。請參閱[如何問](https://stackoverflow.com/help/how-to-ask)。 – Siguza

+0

是你的代碼工作沒有proguard? – jeorfevre

+0

哪個建築框架用於構建項目? Maven還是Gradle? – Vanguard

回答

2

如果你的代碼在沒有proguard的情況下工作,你將不得不像你這樣在你的proguard分類列表中排除外部依賴關係。

在正常情況下,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 *; 
} 

的代碼源:https://github.com/FibreFoX/javafx-gradle-plugin/blob/master/examples/javafx-proguard-gradle/proguard.conf

+1

作爲極客,會建議您編輯您的proguard配置文件以編輯它。這個編輯器不是非常複製/粘貼友好的.... – jeorfevre

+0

我的意思是在上面使用的編輯器不利於編輯你的文件。手動更好,更安全。 – jeorfevre

+0

@jeorfvre Thx幫助我。其實我不知道如何手動做,所以我想使用GUI。在你寫的解決方案中,我找不到JDOM2的提示。 –