Proguard avec android projet à l'aide de (compatibilité) des bibliothèques
Je suis en train d'utiliser Proguard via le Proguard soutien dans l'Explorateur de packages d'Exportation > l'Exportation de l'Application Android. L'objectif principal du projet est à l'aide d'une bibliothèque de projet qui utilise à son tour le android bibliothèque de compatibilité, il utilise cette compatibilité lib. Essentiellement comme suit:
BaseLibraryProject
BaseActitivity
libs:android-support-v4.jar
MainProject
utilise la bibliothèque BaseLibraryProject
libs:android-support-v4.jar
Cette application s'exécute correctement sur les périphériques et simluators.
Cependant Proguard émet beaucoup de mises en garde et existe avec le code 1.
C'est le dernier morceau de la Proguard liées inscription:
[2012-04-09 14:19:49 - MainProject] Warning: android.support.v4.widget.SearchViewCompatHoneycomb: can't find referenced class android.widget.SearchView
[2012-04-09 14:19:49 - MainProject] Warning: android.support.v4.widget.SearchViewCompatHoneycomb: can't find referenced class android.widget.SearchView
[2012-04-09 14:19:49 - MainProject] Warning: android.support.v4.widget.SearchViewCompatHoneycomb: can't find referenced class android.widget.SearchView$OnQueryTextListener
[2012-04-09 14:19:49 - MainProject] Warning: android.support.v4.widget.SearchViewCompatHoneycomb: can't find referenced class android.widget.SearchView
[2012-04-09 14:19:49 - MainProject] Warning: android.support.v4.widget.SearchViewCompatHoneycomb$1: can't find referenced class android.widget.SearchView$OnQueryTextListener
[2012-04-09 14:19:49 - MainProject] Warning: android.support.v4.widget.SearchViewCompatHoneycomb$1: can't find referenced class android.widget.SearchView
[2012-04-09 14:19:49 - MainProject] Warning: there were 131 unresolved references to classes or interfaces.
[2012-04-09 14:19:49 - MainProject] You may need to specify additional library jars (using '-libraryjars').
[2012-04-09 14:19:49 - MainProject] Warning: there were 29 unresolved references to program class members.
[2012-04-09 14:19:49 - MainProject] Your input classes appear to be inconsistent.
[2012-04-09 14:19:49 - MainProject] You may need to recompile them and try again.
[2012-04-09 14:19:49 - MainProject] Alternatively, you may have to specify the option
[2012-04-09 14:19:49 - MainProject] '-dontskipnonpubliclibraryclassmembers'.
[2012-04-09 14:19:49 - MainProject] java.io.IOException: Please correct the above warnings first.
Comme vous le voyez: il ne peut pas trouver la bibliothèque de compatibilité.
C'est le début de la proguard.fichier cfg avec les deux libraryjars et -dontskipnonpubliclibraryclassmembers inclus:
-optimizationpasses 5
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-dontskipnonpubliclibraryclassmembers
-dontpreverify
-verbose
-libraryjars libs/android-support-v4.jar
Ne pas faire une différence. J'ai essayé toutes sortes de combinaisons de l'ajout de la bibliothèque de la BaseLibrary projet /MainProject complet de noms de chemin d'accès. Rien ne semble aider.
Plus stackoverflow questions sur proguard semblent traiter avec la mise en place de Fourmi.
Aucune idée de ce que pourrait être à l'origine de ce problème et comment l'obtenir Proguard de travail sur ce projet qui utilise plusieurs bibliothèques?
Merci d'avance,
OriginalL'auteur Gerrit Beuze | 2012-04-09
Vous devez vous connecter pour publier un commentaire.
La libération de l'ADT 17 apporté de nombreuses améliorations à la façon dont Proguard des œuvres, y compris de meilleures valeurs par défaut, ce qui je pense devrait résoudre votre bibliothèque de prise en charge du problème.
Voir - http://tools.android.com/recent/proguardimprovements
Eclipse (du projet.les propriétés)
Comme de l'ADT 17 le projet par défaut.les propriétés de fichier inclut maintenant la ligne suivante, qui fait référence à un standard de Proguard fichier de configuration (proguard-android.txt) et d'un projet spécifique Proguard fichier de configuration (proguard-project.txt) ...
J'ai recommandé la création d'un nouveau projet Android pour voir comment c'est présenté et l'utilisation de ces nouveaux fichiers. Votre application sera bénéfique à long terme, comme il y a des améliorations à Proguard et la configuration par défaut.
Mise à jour
Gradle (construire.gradle)
Le suivant va utiliser à la fois la norme par défaut proguard config & le projet local proguard règles.
OriginalL'auteur denizmveli