J'ai ici un projet JavaME dans lequel j'ai dû inclure une bibliothèque donnée. J'utilise Netbeans 6.8, donc j'ai simplement ajouté la bibliothèque au projet. Les classes de la bibliothèque sont ensuite correctement compressées dans le fichier jar résultant.Proguard: Comment ne pas optimiser les classes à partir d'une bibliothèque
Mon problème maintenant est que les classes de cette bibliothèque ne doivent pas être touchées par l'obfuscateur Proguard. J'ai donc essayé différentes options de -Keep:
-keep class com.package.**
J'ai aussi essayé -keepnames et -keepclassmembers, mais Proguard QUITTE disant:
Unexpected error while editing code:
Class = [com/package/class]
Method = [run()V]
Exception = [java.lang.IllegalArgumentException] (Invalid instruction offset [1077] in code with length [1075])
Error: Invalid instruction offset [1077] in code with length [1075]
est-il un moyen de dire Proguard d'ignorer une certaine bibliothèque ou certaines classes?
Merci d'avance!
Il est tout à fait une exigence commune de vouloir construire un JAR de distribution qui comprend toutes les dépendances, mais seulement a les pièces d'application traitées par ProGuard; peut-être que vous pourriez ajouter une nouvelle option comme inlibraryjars pour activer ceci (et voir ma réponse puisque la combinaison sans traitement du tout crache toujours des avertissements si elle est faite en tant que deuxième passage). –