(Android) Proguard ne pouvez pas trouver dynamiquement référencés de la classe javax.swing.*
J'ai un problème avec Proguard et l'utilisation de bibliothèques externes. Mon projet se compile sans erreur et qu'il s'exécute correctement sur un périphérique réel,
mais seulement quand je le lance à partir d'Eclipse. Maintenant, je veux faire une obscure version j'ai donc fait la suivante:
couru "mise à jour android de projet -p ./"
ajouté
proguard.dir=/home/stoned/android-sdk-linux_86/proguard4.5.1/lib
proguard.config=/home/stoned/workspace/Fidoo/proguard.cfg
quand je lance "ant libération", j'obtiens le suivant:
... skipped many irrelevant messages ...
-obfuscate:
[mkdir] Created dir: /home/stoned/workspace/Fidoo/bin/proguard
[jar] Building jar: /home/stoned/workspace/Fidoo/bin/proguard/original.jar
[proguard] ProGuard, version 4.4
[proguard] ProGuard is released under the GNU General Public License. The authors of all
[proguard] programs or plugins that link to it (com.android.ant, ...) therefore
[proguard] must ensure that these programs carry the GNU General Public License as well.
[proguard] Reading input...
[proguard] Reading program jar [/home/stoned/workspace/Fidoo/bin/proguard/original.jar]
[proguard] Reading program jar [/home/stoned/workspace/Fidoo/libs/exapi-1.16.jar]
[proguard] Reading program jar [/home/stoned/workspace/Fidoo/libs/libthrift.jar]
[proguard] Reading program jar [/home/stoned/workspace/Fidoo/libs/log4j-1.2.14.jar]
[proguard] Reading library jar [/home/stoned/android-sdk-linux_86/platforms/android-4/android.jar]
[proguard] Initializing...
[proguard] Warning: org.apache.log4j.lf5.viewer.categoryexplorer.CategoryNodeRenderer: can't find superclass or interface javax.swing.tree.DefaultTreeCellRenderer
[proguard] Warning: org.apache.log4j.lf5.viewer.categoryexplorer.TreeModelAdapter: can't find superclass or interface javax.swing.event.TreeModelListener
[proguard] Warning: org.apache.log4j.lf5.viewer.LogBrokerMonitor$32: can't find superclass or interface java.awt.event.ActionListener
[proguard] Warning: org.apache.log4j.lf5.viewer.LogBrokerMonitor$31: can't find superclass or interface java.awt.event.ActionListener
... skipped many lines of similar messages ...
[proguard] Note: org.apache.log4j.lf5.viewer.categoryexplorer.CategoryAbstractCellEditor: can't find dynamically referenced class javax.swing.event.CellEditorListener
[proguard] Note: org.apache.log4j.lf5.viewer.categoryexplorer.CategoryAbstractCellEditor: can't find dynamically referenced class javax.swing.event.CellEditorListener
[proguard] Note: org.apache.log4j.lf5.viewer.categoryexplorer.CategoryAbstractCellEditor: can't find dynamically referenced class javax.swing.event.CellEditorListener
[proguard] Note: org.apache.log4j.lf5.viewer.categoryexplorer.CategoryAbstractCellEditor: can't find dynamically referenced class javax.swing.event.CellEditorListener
[proguard] Note: org.apache.log4j.spi.LocationInfo: can't find dynamically referenced class com.ibm.uvm.tools.DebugSupport
[proguard] Note: there were 5 unresolved dynamic references to classes or interfaces.
[proguard] You should check if you need to specify additional program jars.
[proguard] Warning: there were 1656 unresolved references to classes or interfaces.
[proguard] You may need to specify additional library jars (using '-libraryjars'),
[proguard] or perhaps the '-dontskipnonpubliclibraryclasses' option.
Évidemment, javax.swing. les classes ne sont pas nécessaires dans l'application Android, ainsi que des classes log4j. Comment puis-je faire proguard pas à la recherche de ceux qui sont mentionnés les bibliothèques?
/home/stoned/
hein?
OriginalL'auteur Renat | 2010-12-24
Vous devez vous connecter pour publier un commentaire.
Si il n'y a pas de version de log4j sans le Swing dépendances, et si vous ne pouvez pas facilement ajouter un filtre sur le pot dans le processus de construction, la solution la plus propre est d'éteindre juste ces avertissements dans proguard.cfg:
Vous serez alors toujours obtenir toutes les autres avertissements qui peuvent être pertinents.
OriginalL'auteur Eric Lafortune
Nevermind, juste ajouté
de proguard.cfg
OriginalL'auteur Renat
Eh bien, vous mettre log4j dans votre classpath (libs/log4j-1.2.14.jar). C'est pourquoi log4j est inclus. Il est également tirant dans les références à javax.swing.
Je vois. Encore, cela affecte le comportement d'exécution de l'application à tous (Proguard peut ne pas être en mesure d'optimiser le code, tout de même)?
Il ne crée pas d'apk. Écrit simplement BUILD FAILED /home/défonce/android-sdk-linux_86/outils/ant/main_rules.xml:430: s'il vous Plaît corriger les avertissements ci-dessus en premier.
OriginalL'auteur Thilo-Alexander Ginkel