web-dev-qa-db-fra.com

Configuration de ProGuard avec Android Projets de bibliothèque

J'essaie de configurer proguard pour mon Android. Mon projet d'application contient très peu de code, mais fait référence à un projet de bibliothèque qui contient la grande majorité du code et tout autre bocal externe. Cela étant dit, je ne sais pas comment configurer proguard pour en tenir compte. En ce moment, mon fichier de configuration proguard n'est que l'exemple Android de le site ProGuard . J'ai cherché autour, mais je n'ai pas trouvé beaucoup ou aucune documentation sur l'utilisation de proguard avec des projets de bibliothèque, juste des bocaux. Je suis nouveau sur proguard, donc tout Push dans la bonne direction serait super. Merci.

30
user1132897

Modifier

Comme le souligne @BornToCode, une réponse différente (publiée à l'origine ici ) explique mieux comment les projets de bibliothèque sont gérés par 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 dans ma réponse d'origine. La citation:

Les projets de bibliothèque seuls n'exécutent pas ProGuard, ils n'utilisent donc aucune configuration.

Les projets d'application masquent l'intégralité de 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 bibliothèque.


Ancienne réponse (pas faux, probablement pas la meilleure approche)

Les projets de bibliothèque sont plus un moyen pratique de lier 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 obscurcir ce pot, consultez cet article:

Comment masquer une Android (fichier .jar) à l'aide de Proguard dans Eclipse

18
Phil

Il est logique pour moi de spécifier les paramètres de proguard pour une bibliothèque (comme quels fichiers de bibliothèque ne doivent pas être obscurcis) dans le projet de bibliothèque . J'ai constaté que je dois également inclure des configurations proguard de mes modules de bibliothèque dans mon application. Pour ce faire, j'ai ajouté ce qui suit à la section defaultConfig du build.gradle De ma bibliothèque

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 conserver les noms des classes sérialisées importantes.

Voir aussi consumerProguardFiles référence gradle

12
Jon