Articles of proguard

¿Cómo se evita que Proguard elimine los parámetros de tipo?

Actualmente estoy intentando ofuscar una serie de bibliotecas. Mi biblioteca base, que contiene varias clases y métodos que usan parámetros de tipo, no puede ser utilizada por otro código debido a los parámetros de tipo eliminados por la ofuscación de Proguard. Eliminar la ofuscación elimina estos problemas. He leído todos los documentos de uso de […]

Reducir el tamaño de la aplicación de Android (apk)

Ahora publicaría mi primera aplicación en Google Play Store. Ya compré imágenes usadas en mi aplicación. Y tengo algunas preguntas sobre el tamaño de la aplicación. Si el tamaño de la aplicación es inferior a 2 MB, existen menos posibilidades de que el usuario desinstale la aplicación. ¿Es esta esta afirmación válida para las aplicaciones […]

La API de Google Drive no funciona bien con ProGuard (NPE)

Actualmente, tengo experiencia en que una pieza de código que hace uso de la API de Google Drive funciona bien sin la introducción de ProGuard. Sin embargo, después de presentar ProGuard, recibo el siguiente error de tiempo de ejecución. at java.lang.Thread.run(Thread.java:856) Caused by: java.lang.NullPointerException at com.google.api.client.util.Types.getActualParameterAtPosition(Types.java:329) at com.google.api.client.util.Types.getIterableParameter(Types.java:309) at com.google.api.client.json.JsonParser.parseValue(JsonParser.java:546) at com.google.api.client.json.JsonParser.parse(JsonParser.java:350) at com.google.api.client.json.JsonParser.parseValue(JsonParser.java:586) at […]

Proguard warnings “no se puede escribir el recurso (entrada zip duplicada)”

Estoy usando IntelliJ y ejecutando Proguard en modo de depuración, pero parece que no puedo deshacerme de advertencias como: ProGuard: [MyApplication] Warning: can’t write resource [META-INF/MANIFEST.MF] (Duplicate zip entry [android-support-v13.jar:META-INF/MANIFEST.MF]) Este proyecto tiene un par de módulos y android-support-v13.jar está siendo utilizado en 2 de ellos. Pensé que ese era el problema, así que eliminé […]

Proguard ignora el archivo de configuración de la biblioteca

Me enfrento a un problema realmente extraño por días … Tengo una aplicación Gradle con dos módulos, un módulo principal y un módulo de biblioteca. En ambos módulos, he declarado una ruta de archivo proguard-rules.pro que es correcta En ambos archivos .gradle tengo minifyEnabled true aquí está el primer problema: incluso si minifyEnabled es falso […]

¿Cómo usar ProGuard en Android Studio?

Este es mi primer proyecto en Android Studio, y el código de mis aplicaciones no está ofuscado. Estoy usando esta configuración en el archivo build.gradle: Estoy usando Build> Generate Signed APK … con Run Proguard marcado. Y, cuando he probado usando Apk_OneClick.v4.2, mi código es completamente fácil de leer: Por favor, ayúdame. 🙁

Error de la interfaz Javascript de Android Proguard

Utilizo en mi proyecto un fragmento de código como se describe aquí http://lexandera.com/2009/01/extracting-html-from-a-webview/ Creo el archivo .apk, lo instalo en mi dispositivo y funciona correctamente. Si trato de usar la ofuscación con proguard el proyecto falla, no se alcanza el método showHTML (String html) de MyJavaScriptInterface. Mi configuración proguard con respecto a eso -keep public […]

¿Cómo hacer que Proguard ignore las bibliotecas externas?

Quiero usar Proguard principalmente por motivos de ofuscación. Mi problema es que tengo tres bibliotecas, Twitter4J y dos bibliotecas de señal. Estas bibliotecas causaron errores cuando intenté crear una APK firmada. Para superar esto pongo lo siguiente en el archivo proguard.config … -dontwarn org.apache.commons.codec.binary.** -dontwarn org.slf4j.** -dontwarn com.sun.syndication.io.** -dontwarn com.sun.syndication.feed.synd.* Si bien esto eliminó los […]

Proguard y reflection en Android

Acabo de usar Proguard, pero las clases que bash crear a través de la reflexión no funcionan. Tengo una interfaz Algorithm Paso clases como esta AlgorithmFactory.SomeClassThatExtendsAlgorithmImpl.class La clase está instanciada así public ArrayList getAlgorithms(Context cnx) { ArrayList list = new ArrayList(); for(Class alg: algorithms) { try { Constructor c = alg.getConstructor(Context.class); list.add(c.newInstance(cnx)); } catch (IllegalArgumentException […]

¿Se necesita proguard.cfg para proyectos de biblioteca?

Suponiendo que necesito aplicar las mismas reglas para un proyecto de aplicación y un proyecto de biblioteca en el que se basa, ¿necesito duplicar el contenido de proguard.cfg de la aplicación al proyecto de la biblioteca? En otras palabras, ¿la aplicación proguard.cfg “se hace cargo” de todos los proyectos de la biblioteca de los que […]