Configurer proguard à exclure de la bibliothèque pot qui s'étend android.contenu.Contexte
Je suis l'intégration d'une bibliothèque dans un appareil pour un projet qui va être intégré dans le système d'exploitation du dispositif. Pour cela, nous sommes en train d'intégrer une bibliothèque pot qui remplace le Android cadre de Contexte.
À cause de cela, essayer d'activer Proguard pour l'application me donne l'erreur suivante - "il y avait 220 cas de la bibliothèque de classes, selon le programme des classes".
Tous ces fichiers sont des Widgets et des points de Vue. Comment puis-je résoudre ce problème?
C'est le contenu de mon proguard-project.txt
-injars bin/classes
-outjars bin/classes-processed.jar
-libraryjars /Users/me/android-sdk-mac_86/platforms/android-15/android.jar
-libraryjars libs/library-that-overrides-context.jar
-keep public class * extends android.app.Activity
-keep public class * extends android.app.Application
-keep public class * extends android.app.Service
-keep public class * extends android.content.BroadcastReceiver
-keep public class * extends android.content.ContentProvider
-keep public class * extends android.content.Context
C'est le contenu de mon proguard-android.txt
# This is a configuration file for ProGuard.
# http://proguard.sourceforge.net/index.html#manual/usage.html
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-verbose
# Optimization is turned off by default. Dex does not like code run
# through the ProGuard optimize and preverify steps (and performs some
# of these optimizations on its own).
-dontoptimize
-dontpreverify
# Note that if you want to enable optimization, you cannot just
# include optimization flags in your own project configuration file;
# instead you will need to point to the
# "proguard-android-optimize.txt" file instead of this one from your
# project.properties file.
-keepattributes *Annotation*
-keep public class com.google.vending.licensing.ILicensingService
-keep public class com.android.vending.licensing.ILicensingService
# For native methods, see http://proguard.sourceforge.net/manual/examples.html#native
-keepclasseswithmembernames class * {
native <methods>;
}
# keep setters in Views so that animations can still work.
# see http://proguard.sourceforge.net/manual/examples.html#beans
-keepclassmembers public class * extends android.view.View {
void set*(***);
*** get*();
}
# We want to keep methods in Activity that could be used in the XML attribute onClick
-keepclassmembers class * extends android.app.Activity {
public void *(android.view.View);
}
# For enumeration classes, see http://proguard.sourceforge.net/manual/examples.html#enumerations
-keepclassmembers enum * {
public static **[] values();
public static ** valueOf(java.lang.String);
}
-keep class * implements android.os.Parcelable {
public static final android.os.Parcelable$Creator *;
}
-keepclassmembers class **.R$* {
public static <fields>;
}
# The support library contains references to newer platform versions.
# Don't warn about those in case this app is linking against an older
# platform version. We know about them, and they are safe.
-dontwarn android.support.**
C'est qu'un accident ? puis après la complète stacktrace qui fera plus de seance
Non, ce sont des avertissements. Si j'utilise -dontwarn, l'apk est formé, mais je l'installer sur l'appareil, je ne peux pas obtenir les journaux...
Jamais l'esprit.. j'ai eu la réponse ici: stackoverflow.com/questions/6542631/...
Pour référence future, j'ai dû ajouter de la ligne -garder classe
Non, ce sont des avertissements. Si j'utilise -dontwarn, l'apk est formé, mais je l'installer sur l'appareil, je ne peux pas obtenir les journaux...
Jamais l'esprit.. j'ai eu la réponse ici: stackoverflow.com/questions/6542631/...
Pour référence future, j'ai dû ajouter de la ligne -garder classe
android.content.** { *; }
à mon proguard-project.txt
OriginalL'auteur Vinay S Shenoy | 2013-04-25
Vous devez vous connecter pour publier un commentaire.
Android Ant/Eclipse construit automatiquement spécifier toutes nécessaires -injars/-outjars/-libraryjars options pour vous. Vous ne devriez spécifier ces options si vous avez un processus de création personnalisé. Sinon, vous aurez beaucoup de mises en garde sur les doublons de classes et peut-être d'autres problèmes.
Si vous avez besoin de le préciser -injars/-outjars/-libraryjars options, classes spécifiée avec-injars peut dépendre des classes spécifiée avec-libraryjars, mais pas l'inverse. Cfr. ProGuard manuel > Dépannage > Avertissement: bibliothèque de la classe ... dépend du programme de la classe ...
keep class android.content.** { *; }
dans mon projet spécifique proguard fichierOriginalL'auteur Eric Lafortune
Même si j'avais marqué ma bibliothèque comme un libraryjar, j'ai également eu à ajouter les lignes
-keep public class android.content.** { *; }
pour le projet proguard fichier de configuration pour régler les problèmes.OriginalL'auteur Vinay S Shenoy