2017-06-03 12 views
-7

Ich benutze die ProGuard GUI, um mein Glas zu verschleiern, aber ich habe einige Probleme. Besonders an meinem Glas ist, dass ich die Bibliotheken javafx und jdom2 benutze.ProGuard mit JavaFX und JDOM2

Was ich bisher tat:

  • Added der Eingang jar
  • Added die Ausgabe jar
  • hinzugefügt, um die Bibliotheken rt.jar, jdom-2.0.6.jar, jfxrt.jar

Ich weiß nicht genau, wie man dieses Formular füllt, damit es richtig funktioniert. Ich habe mehrere Dinge versucht, aber ich bekomme immer wieder andere Fehler.

UI Obfuscation

Haben Sie damit keine Erfahrung haben?

+2

"Wollen Sie damit keine Erfahrung haben?" ist keine echte Frage und "Ich bekomme immer wieder andere Fehler" ist keine wirkliche Problembeschreibung. Bitte sehen Sie [wie man fragt] (https://stackoverflow.com/help/how-to-ask). – Siguza

+0

funktioniert Ihr Code ohne proguard? – jeorfevre

+0

Welches der Gebäuderahmen verwenden Sie, um Ihr Projekt zu erstellen? Maven oder Gradle? – Vanguard

Antwort

2

Wenn Ihr Code ohne Progard funktioniert, müssen Sie die externen Abhängigkeiten in Ihrer Proguard-Liste so ausschließen.

In normalen Fällen wird Proguard versuchen, alle zu stören. Versuchen Sie, Ihre proguard Config-Datei hinzuzufügen:

-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 *; 
} 

Quelle Code: https://github.com/FibreFoX/javafx-gradle-plugin/blob/master/examples/javafx-proguard-gradle/proguard.conf

+1

als Geek, werden Sie empfehlen, Ihre Proguard-Konfigurationsdatei zu bearbeiten, um sie zu bearbeiten. Dieser Editor ist nicht sehr Copy/Paste freundlich .... – jeorfevre

+0

Ich meine, der Editor oben verwendet erleichtert nicht die Bearbeitung Ihrer Datei. Mach es manuell besser und sicherer. – jeorfevre

+0

@jeorfvre Danke, dass du mir geholfen hast. Eigentlich weiß ich nicht, wie man es manuell macht, also möchte ich die GUI benutzen. In der von dir geschriebenen Lösung finde ich keine Hinweise auf JDOM2. –