2013-03-01 5 views
27

J'essaie de configurer proguard pour mon projet Android. Mon projet d'application contient très peu de code, mais référence un projet de bibliothèque qui contient la plus grande partie du code et tous les autres fichiers externes. Cela dit, je ne sais pas comment configurer proguard pour en tenir compte. En ce moment mon fichier de configuration proguard est juste l'exemple Android de the ProGuard site. J'ai cherché autour, mais n'ai pas trouvé beaucoup ou aucune documentation sur l'utilisation de proguard avec des projets de bibliothèque, juste des pots. Je suis nouveau à proguard, donc toute poussée dans la bonne direction serait géniale. Merci.Configuration de ProGuard avec les projets de bibliothèque Android

Répondre

15

Modifier

Comme @BornToCode souligne, une réponse différente (à l'origine affichée here) explique mieux comment les projets sont pris en charge par la bibliothèque Proguard. De plus, cette question référencée a plus d'intérêt et plus de réputation globale que celle liée à ma réponse originale. La citation:

projets de bibliothèque par eux-mêmes ne fonctionnent pas ProGuard, donc ils n'utilisent aucune configuration. Les projets d'application obscurcissent toute la base de code, y compris les bibliothèques référencées . Ils ont donc besoin d'une configuration appropriée pour le code d'application et pour le code de la bibliothèque.


Old réponse(pas mal, juste sans doute pas la meilleure approche)

Les projets de bibliothèque est plus d'un moyen pratique de relier un projet à son pot dans Eclipse. Lorsque vous générez le projet, le seul composant du projet de bibliothèque visible par votre compilateur est le fichier jar.

Si vous voulez masquer ce pot, consultez ce post:

How to obfuscate an Android library (.jar file) using Proguard in Eclipse

+0

Salut, il semble que cette réponse est différente avec [ce] (http://stackoverflow.com/questions/10982344/is-proguard-cfg-needed-for-library-projects#10992604). Pourriez-vous expliquer? – BornToCode

+0

@BornToCode vous avez absolument raison. La réponse liée est évidemment beaucoup plus honorable que ma réponse. J'ai ajouté un lien à ceci et une citation dans ma réponse ici. – Phil

4

Il me semble logique de spécifier les paramètres ProGuard pour une bibliothèque (comme les fichiers de bibliothèque ne doivent pas être occultées) dans le projet de bibliothèque. J'ai trouvé que j'ai également besoin d'inclure des configurations proguard de mes modules de bibliothèque dans mon application. Pour ce faire, j'ajouté ce qui suit à la section defaultConfig de ma bibliothèque build.gradle

apply plugin: 'com.android.library' 

android { 
    defaultConfig { 
     consumerProguardFiles 'proguard-rules.pro' 
    } 
} 

puis configuré le fichier proguard-rules.pro dans mon module de bibliothèque pour garder les noms des importants cours sérialisés.

Voir aussi consumerProguardFiles gradle reference

Questions connexes