[JAVA] Choses à vérifier lorsque vous ne travaillez pas avec proguard

Une histoire sur l'exportation d'un projet javaFX et la tentative d'obfusquer le fichier jar créé. De la conclusion, la cause était que l'annotation disparaissait lorsqu'elle était obscurcie par proguard. En guise de contre-mesure, j'ai d'abord essayé de le masquer avec les paramètres suivants qui ne font rien.

#sample.pro
#Se mettre à ne rien faire

-injars  'C:\******\input.jar'
-outjars 'C:\******\output.jar'

#Pot externe
-libraryjars 'C:\Program Files\Java\jdk1.8.0_144\jre\lib\rt.jar'
-libraryjars 'C:\****\*****.jar'
-libraryjars 'C:\****\*****.jar'

#Paramètre d'attribut
-keepattributes *Annotation*, Signature, Exceptions, InnerClass

#Réglage de la classe
-keep class * {
    *;
}

Si cela ne fonctionne pas, le fichier jar est peut-être mal configuré. Si cela fonctionne, supprimez la partie obscurcie d'ici. Par exemple, classez chaque package comme indiqué ci-dessous et définissez-les individuellement.

$sample2.pro
#Paramètres individuels pour chaque package

-injars  'C:\******\input.jar'
-outjars 'C:\******\output.jar'

#Pot externe
-libraryjars 'C:\Program Files\Java\jdk1.8.0_144\jre\lib\rt.jar'
-libraryjars 'C:\****\*****.jar'
-libraryjars 'C:\****\*****.jar'

#Paramètre d'attribut
-keepattributes *Annotation*, Signature, Exceptions, InnerClass

#Réglage de la classe
-keep class package1.* { *;}
-keep class package2.* { *;}
-keep class package3.* { *;}
-keep class package4.* { *;}

Recommended Posts

Choses à vérifier lorsque vous ne travaillez pas avec proguard
Vérifiez si vous utilisez la liaison de données et que cela ne fonctionne pas
@ClassRules ne fonctionne pas avec PowerMockRunner
[Débutant] Lorsque les rails ne fonctionnent pas
Que faire lorsque la validation ne fonctionne pas avec l'action de mise à jour
Une collection de liens que vous souhaitez aider lorsque JSF ne fonctionne pas du tout
Vérifier quand moss avec SimpleDateFormat parse
Choses à oublier lors de l'interception d'une requête avec Android WebView # shouldInterceptRequest
Il est normal de combiner des valeurs nulles avec l'opérateur `+` de Java (il ne baisse pas avec nullpo)
Points à garder à l'esprit lors de l'utilisation d'Apache PDFBox® avec AWS Lambda
Lorsque j'essaye de m'inscrire avec devise, il redirige automatiquement vers root_path
Le simulateur ne fonctionne pas: impossible de démarrer le périphérique en raison de ressources système insuffisantes
Choses à vérifier lorsque vous ne travaillez pas avec proguard
Que faire si TextToSpeech ne fonctionne pas sur Android 11
java.lang.ClassNotFoundException: Correspondance avec javax.xml.bind.JAXBException
Que faire quand est invalide car il ne commence pas par un "-"
Points à prendre en compte lors de l'écriture de Java
Points à garder à l'esprit lorsque vous vous engagez dans CRuby
Comment supprimer le tweet associé à l'utilisateur lorsque vous le supprimez en même temps
Lors de l'importation de CSV avec Rails, il était vraiment facile d'utiliser la commande nkf
Que faire lorsque les paramètres de routage ne fonctionnent pas après la création d'un environnement Docker avec Laravel
7 choses que je veux que tu gardes pour que ça ne devienne pas un putain de code