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 android.content.** { *; } à mon proguard-project.txt

OriginalL'auteur Vinay S Shenoy | 2013-04-25