2014-07-11 4 views
1

J'utilise proguard pour la première fois, et quand je compilé l'application que j'ai reçu la pile d'erreur suivant:erreurs Android Proguard sur la compilation

Note: there were 1 duplicate class definitions. 
     (http://proguard.sourceforge.net/manual/troubleshooting.html#duplicateclass) 
Warning:org.codehaus.jackson.map.ext.DOMSerializer: can't find referenced class org.w3c.dom.bootstrap.DOMImplementationRegistry 
Warning:org.codehaus.jackson.map.ext.JodaDeserializers: can't find referenced class org.joda.time.DateTime 
Warning:org.codehaus.jackson.map.ext.JodaDeserializers: can't find referenced class org.joda.time.ReadableDateTime 
Warning:org.codehaus.jackson.map.ext.JodaDeserializers: can't find referenced class org.joda.time.ReadableInstant 
Warning:org.codehaus.jackson.map.ext.JodaDeserializers$DateMidnightDeserializer: can't find referenced class org.joda.time.DateMidnight 
Warning:org.codehaus.jackson.map.ext.JodaDeserializers$DateMidnightDeserializer: can't find referenced class org.joda.time.DateTime 
Warning:org.codehaus.jackson.map.ext.JodaDeserializers$DateMidnightDeserializer: can't find referenced class org.joda.time.DateMidnight 
Warning:org.codehaus.jackson.map.ext.JodaDeserializers$DateMidnightDeserializer: can't find referenced class org.joda.time.DateTime 
Warning:org.codehaus.jackson.map.ext.JodaDeserializers$DateMidnightDeserializer: can't find referenced class org.joda.time.DateMidnight 
Warning:org.codehaus.jackson.map.ext.JodaDeserializers$DateTimeDeserializer: can't find referenced class org.joda.time.DateTime 
Warning:org.codehaus.jackson.map.ext.JodaDeserializers$DateTimeDeserializer: can't find referenced class org.joda.time.DateTimeZone 
Warning:org.codehaus.jackson.map.ext.JodaDeserializers$DateTimeDeserializer: can't find referenced class org.joda.time.DateTime 
Warning:org.codehaus.jackson.map.ext.JodaDeserializers$DateTimeDeserializer: can't find referenced class org.joda.time.ReadableInstant 
Warning:org.codehaus.jackson.map.ext.JodaDeserializers$JodaDeserializer: can't find referenced class org.joda.time.format.DateTimeFormatter 
Warning:org.codehaus.jackson.map.ext.JodaDeserializers$JodaDeserializer: can't find referenced class org.joda.time.format.ISODateTimeFormat 
Warning:org.codehaus.jackson.map.ext.JodaDeserializers$JodaDeserializer: can't find referenced class org.joda.time.format.DateTimeFormatter 
Warning:org.codehaus.jackson.map.ext.JodaDeserializers$JodaDeserializer: can't find referenced class org.joda.time.DateTime 
Warning:org.codehaus.jackson.map.ext.JodaDeserializers$LocalDateDeserializer: can't find referenced class org.joda.time.LocalDate 
Warning:org.codehaus.jackson.map.ext.JodaDeserializers$LocalDateDeserializer: can't find referenced class org.joda.time.DateTime 
Warning:org.codehaus.jackson.map.ext.JodaDeserializers$LocalDateDeserializer: can't find referenced class org.joda.time.LocalDate 
Warning:org.codehaus.jackson.map.ext.JodaDeserializers$LocalDateDeserializer: can't find referenced class org.joda.time.DateTime 
Warning:org.codehaus.jackson.map.ext.JodaDeserializers$LocalDateDeserializer: can't find referenced class org.joda.time.LocalDate 
Warning:org.codehaus.jackson.map.ext.JodaDeserializers$LocalDateTimeDeserializer: can't find referenced class org.joda.time.LocalDateTime 
Warning:org.codehaus.jackson.map.ext.JodaDeserializers$LocalDateTimeDeserializer: can't find referenced class org.joda.time.DateTime 
Warning:org.codehaus.jackson.map.ext.JodaDeserializers$LocalDateTimeDeserializer: can't find referenced class org.joda.time.LocalDateTime 
Warning:org.codehaus.jackson.map.ext.JodaDeserializers$LocalDateTimeDeserializer: can't find referenced class org.joda.time.DateTime 
Warning:org.codehaus.jackson.map.ext.JodaDeserializers$LocalDateTimeDeserializer: can't find referenced class org.joda.time.LocalDateTime 
Warning:org.codehaus.jackson.map.ext.JodaSerializers: can't find referenced class org.joda.time.DateTime 
Warning:org.codehaus.jackson.map.ext.JodaSerializers: can't find referenced class org.joda.time.LocalDateTime 
Warning:org.codehaus.jackson.map.ext.JodaSerializers: can't find referenced class org.joda.time.LocalDate 
Warning:org.codehaus.jackson.map.ext.JodaSerializers: can't find referenced class org.joda.time.DateMidnight 
Warning:org.codehaus.jackson.map.ext.JodaSerializers$DateMidnightSerializer: can't find referenced class org.joda.time.DateMidnight$Property 
Warning:org.codehaus.jackson.map.ext.JodaSerializers$DateMidnightSerializer: can't find referenced class org.joda.time.DateMidnight 
Warning:org.codehaus.jackson.map.ext.JodaSerializers$DateMidnightSerializer: can't find referenced class org.joda.time.DateMidnight$Property 
Warning:org.codehaus.jackson.map.ext.JodaSerializers$DateMidnightSerializer: can't find referenced class org.joda.time.DateMidnight 
Warning:org.codehaus.jackson.map.ext.JodaSerializers$DateTimeSerializer: can't find referenced class org.joda.time.DateTime 
Warning:org.codehaus.jackson.map.ext.JodaSerializers$JodaSerializer: can't find referenced class org.joda.time.format.DateTimeFormatter 
Warning:org.codehaus.jackson.map.ext.JodaSerializers$JodaSerializer: can't find referenced class org.joda.time.format.ISODateTimeFormat 
Warning:org.codehaus.jackson.map.ext.JodaSerializers$JodaSerializer: can't find referenced class org.joda.time.format.DateTimeFormatter 
Warning:org.codehaus.jackson.map.ext.JodaSerializers$JodaSerializer: can't find referenced class org.joda.time.ReadablePartial 
Warning:org.codehaus.jackson.map.ext.JodaSerializers$JodaSerializer: can't find referenced class org.joda.time.ReadableInstant 
Warning:org.codehaus.jackson.map.ext.JodaSerializers$LocalDateSerializer: can't find referenced class org.joda.time.LocalDate$Property 
Warning:org.codehaus.jackson.map.ext.JodaSerializers$LocalDateSerializer: can't find referenced class org.joda.time.LocalDate 
Warning:org.codehaus.jackson.map.ext.JodaSerializers$LocalDateSerializer: can't find referenced class org.joda.time.LocalDate$Property 
Warning:org.codehaus.jackson.map.ext.JodaSerializers$LocalDateSerializer: can't find referenced class org.joda.time.LocalDate 
Warning:org.codehaus.jackson.map.ext.JodaSerializers$LocalDateTimeSerializer: can't find referenced class org.joda.time.LocalDateTime$Property 
Warning:org.codehaus.jackson.map.ext.JodaSerializers$LocalDateTimeSerializer: can't find referenced class org.joda.time.LocalDateTime 
Warning:org.codehaus.jackson.map.ext.JodaSerializers$LocalDateTimeSerializer: can't find referenced class org.joda.time.LocalDateTime$Property 
Warning:org.codehaus.jackson.map.ext.JodaSerializers$LocalDateTimeSerializer: can't find referenced class org.joda.time.LocalDateTime 
Warning:there were 99 unresolved references to classes or interfaces. 
     You may need to add missing library jars or update their versions. 
     If your code works fine without the missing classes, you can suppress 
     the warnings with '-dontwarn' options. 
     (http://proguard.sourceforge.net/manual/troubleshooting.html#unresolvedclass) 
:app:proguardDebug FAILED 

J'ai essayé avec les deux changements de base à Proguard règles. txt et avec tout dans ce fichier a commenté et obtenir le même résultat, de sorte que le contenu de ce (ou son absence) ne semble pas avoir d'incidence sur cette erreur étant levée.

Comme vous pouvez le voir, il n'y a rien qui indique exactement ce qui est en double. En outre, les lignes d'avertissement sous le message sur la duplication font référence à un package que je n'utilise nulle part dans mon application.

J'ai essayé la recherche de ce problème et a tenté d'ajouter quelques lignes telles que

-keep class android.support.v4.** { *; }

qui quelqu'un a suggéré, mais qui n'a pas fait l'affaire.

Voici quelque chose dans le fichier build.gradle pour mon application qui soulève un drapeau:

proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'

Je dispose d'un fichier proguard-rules.txt dans le dossier racine de mon application (même répertoire comme mon fichier build.gradle), mais je n'ai pas de fichier proguard-android.txt là-bas, ou ailleurs, je pourrais trouver d'ailleurs. Cela pourrait-il être une cause?

Des idées? Merci!

Répondre

1

En fait, vous n'ont pas d'erreurs, ce sont des avertissements qui, d'après ce que l'log dit,

If your code works fine without the missing classes, you can suppress 
    the warnings with '-dontwarn' options. 

peut être supprimé avec la ligne suivante dans le fichier ProGuard config:

-dontwarn org.codehaus.jackson.map.ext.** 
0

Essayez d'ajouter ce qui suit à votre config proguard:

-keep class org.w3c.dom.bootstrap.** { *; } 
-keep class org.joda.time.** { *; } 
+0

Dang, cela n'a pas fonctionné. J'ajoute mon fichier build.gradle à la question, je vois quelque chose qui soulève un drapeau pour moi. – JMRboosties

1

Ajouter sur votre fichier PROGuard:

-dontwarn org.joda.convert.** 
-dontwarn org.codehaus.jackson.map.ext.** 
-keep class org.w3c.dom.bootstrap.** { *; } 
-keep class org.joda.time.** { *; }