Cuando mi aplicación se compila con ProGuard, falla con el siguiente mensaje. Utilizo un proguard.cfg predeterminado generado por Android SDK con algunos -libraryjars. ¿Qué puedo hacer por eso?Error de Android ProGuard con org.xmlpull.v1.XmlPullParser
[2011-03-17 09:27:04 - MyProject] Proguard returned with error code 1. See console
[2011-03-17 09:27:04 - MyProject] Note: there were 4247 duplicate class definitions.
[2011-03-17 09:27:04 - MyProject] Warning: library class android.content.res.XmlResourceParser extends or implements program class org.xmlpull.v1.XmlPullParser
[2011-03-17 09:27:04 - MyProject] Warning: library class android.content.Intent depends on program class org.xmlpull.v1.XmlPullParser
[2011-03-17 09:27:04 - MyProject] Warning: library class android.graphics.drawable.AnimationDrawable depends on program class org.xmlpull.v1.XmlPullParser
[2011-03-17 09:27:04 - MyProject] Warning: library class android.graphics.drawable.BitmapDrawable depends on program class org.xmlpull.v1.XmlPullParser
[2011-03-17 09:27:04 - MyProject] Warning: library class android.graphics.drawable.Drawable depends on program class org.xmlpull.v1.XmlPullParser
[2011-03-17 09:27:04 - MyProject] Warning: library class android.graphics.drawable.Drawable depends on program class org.xmlpull.v1.XmlPullParser
[2011-03-17 09:27:04 - MyProject] Warning: library class android.graphics.drawable.Drawable depends on program class org.xmlpull.v1.XmlPullParser
[2011-03-17 09:27:04 - MyProject] Warning: library class android.view.LayoutInflater depends on program class org.xmlpull.v1.XmlPullParser
[2011-03-17 09:27:04 - MyProject] Warning: library class android.view.LayoutInflater depends on program class org.xmlpull.v1.XmlPullParser
[2011-03-17 09:27:04 - MyProject] You should check if you need to specify additional program jars.
[2011-03-17 09:27:04 - MyProject] Warning: there were 9 instances of library classes depending on program classes.
[2011-03-17 09:27:04 - MyProject] You must avoid such dependencies, since the program classes will
[2011-03-17 09:27:04 - MyProject] be processed, while the library classes will remain unchanged.
[2011-03-17 09:27:04 - MyProject] java.io.IOException: Please correct the above warnings first.
[2011-03-17 09:27:04 - MyProject] at proguard.Initializer.execute(Initializer.java:321)
[2011-03-17 09:27:04 - MyProject] at proguard.ProGuard.initialize(ProGuard.java:211)
[2011-03-17 09:27:04 - MyProject] at proguard.ProGuard.execute(ProGuard.java:86)
[2011-03-17 09:27:04 - MyProject] at proguard.ProGuard.main(ProGuard.java:492)
Al parecer, org.xmlpull.v1.XmlPullParser no es una clase de programas. He actualizado ProGuard a la versión más reciente (4.6), pero tengo las mismas advertencias.
Eric, la razón por la que (o en todo caso, I) tiene la clase XmlPullParser en un frasco en su libs es tan original que anularía la clase XmlPullParser incorporada de Android que es deficiente para algunos usos. Debido a la forma en que formulamos proguard.cfg en Android, no es posible filtrar el incorporado, ni tampoco queremos filtrar el mejor, AFAIK. Tampoco parece prudente rodar nuestros propios frascos de Android, si eso es posible. ¿Cómo deberíamos lidiar con esto?Gracias – pjv
Si los archivos de su programa contienen mejores implementaciones, debería intentar filtrar las versiones de la biblioteca, con "-libraryjars android.jar (! Org/xmlpull/v1/**)", de modo que ProGuard obtenga una entrada limpia. Si eso no es posible, puede especificar algo como "-dontwarn org.xmlpull.v1. **". Debería funcionar en este caso, porque ProGuard da prioridad a las clases de programa sobre las clases de biblioteca. –