¿Cómo hacer que Proguard ignore las bibliotecas externas?
Quiero usar Proguard principalmente por razones de ofuscación.
Mi problema es que tengo tres bibliotecas, Twitter4J y dos bibliotecas de señales. Estas bibliotecas causaron errores cuando intenté crear un APK firmado. Para superar esto, pongo lo siguiente en el archivo proguard.config
…
- Cómo usar Kotlin con Proguard
- Proguard dando "Warning: org.msgpack. *"
- Android + Proguard + Apache POI
- Kotlin y Proguard
- Cómo generar mapping.txt con Eclipse?
-dontwarn org.apache.commons.codec.binary.** -dontwarn org.slf4j.** -dontwarn com.sun.syndication.io.** -dontwarn com.sun.syndication.feed.synd.*
Mientras esto se deshizo de los errores en la consola, cuando cargué mi firmado APK en mi teléfono móvil que se estrelló de inmediato. El DDMS dijo que esto era debido a una clase no encontrada en Twitter4J.
Deshacerse de la "dontwarns"
arriba no ayudó. Tampoco la adición de dontshrink dontoptimise
.
Me gustaría Proguard para ignorar completamente las bibliotecas (ya que son de código abierto de todos modos). es posible?
- Google Analytics vuelve a consultar Proguard
- Android Proguard con tarro externo
- ¿Dónde están los archivos de salida de Android Wear Proguard?
- ProGuard no puede encontrar bibliotecas de referencia
- Usando "dontwarn" en proguard
- Cómo corregir la advertencia proguard 'no se puede encontrar el método de referencia' para los métodos existentes 'clonar' y 'finalizar' de la clase java.lang.Object
- ¿Dónde encuentro proguard.cfg en mi proyecto?
- El método debe anularse en si se llama "en Android Studio
Prueba esto:
-keep class javax.** { *; } -keep class org.** { *; } -keep class twitter4j.** { *; }
Cf post de @CaspNZ: Android Proguard con tarro externo
Debe poder agregar a proguard.cfg las siguientes líneas para excluir todas las clases dentro de un paquete (y subpaquetes)
-keep class org.apache.commons.codec.binary.** -keep interface org.apache.commons.codec.binary.** -keep enum org.apache.commons.codec.binary.** -keep class org.slf4j.** -keep interface org.slf4j.** -keep enum org.slf4j.** -keep class com.sun.syndication.io.** -keep interface com.sun.syndication.io.** -keep enum com.sun.syndication.io.** -keep class com.sun.syndication.feed.synd.** -keep interface com.sun.syndication.feed.synd.** -keep enum com.sun.syndication.feed.synd.**
- ¿Carga la cadena específica de un recurso?
- Paquete de soporte de Android / Biblioteca de Compatibilidad – use v4 o v13?