¿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: enter image description here

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:

enter image description here

Por favor, ayúdame. 🙁

Probablemente no estés firmando la versión de lanzamiento del APK a través del asistente de firma. Puede construir la versión APK desde la línea de comando con el comando:

./gradlew assembleRelease 

o puede elegir la variante de lanzamiento de la vista Variantes de comstackción y comstackrla desde la GUI:

Ventana principal de IDE mostrando Variantes de compilación

Puede configurar su archivo build.gradle para la implementación de proguard. Puede ser a nivel de módulo o a nivel de proyecto.

  buildTypes { debug { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' } } 

La configuración que se muestra es para el nivel de depuración, pero puede escribir sus propios sabores de comstackción como se muestra a continuación dentro de buildTypes:

  myproductionbuild{ minifyEnabled true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' } 

Es mejor tener su depuración con minifyEnabled false y productionbuild y otras comstackciones como minifyEnabled true .

Copie su archivo proguard-rules.txt en la raíz de su módulo o carpeta de proyecto como

$YOUR_PROJECT_DIR\YoutProject\yourmodule\proguard-rules.txt

Puede cambiar el nombre de su archivo como lo desee. Después de la configuración, use una de las tres opciones disponibles para generar su comstackción según el buildType

  1. Vaya a la tarea gradle en el panel derecho y busque assembleRelease/assemble(#your_defined_buildtype) en las tareas del módulo

  2. Ve a Build Variant en el panel izquierdo y selecciona la comstackción desde el menú desplegable

  3. Ir al directorio raíz del proyecto en el Explorador de archivos y abrir cmd / terminal y ejecutar

Linux ./gradlew assembleRelease or assemble(#your_defined_buildtype)

Windows gradlew assembleRelease or assemble(#your_defined_buildtype)

Puedes encontrar apk en tu módulo / directorio de comstackción.

Más información sobre la configuración y la ubicación de los archivos proguard está disponible en el enlace

http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Running-ProGuard

NB .: Ahora en lugar de

 runProguard false 

necesitarás usar

 minifyEnabled false 

Intente cambiar el nombre de su archivo ‘proguard-rules.txt’ a ‘proguard-android.txt’ y elimine la referencia a ‘proguard-rules.txt’ en su archivo gradle. La getDefaultProguardFile(...) referencia a un archivo de protección predeterminado diferente, uno provisto por Google y no en su proyecto. Así que elimine esto también, para que aquí el archivo gradle lea:

 buildTypes { release { runProguard true proguardFile 'proguard-android.txt' } } 

Las otras respuestas aquí son excelentes referencias sobre el uso de Proguard. Sin embargo, no he visto un tema discutido con el que me encontré que era una pérdida de la mente. Después de generar un archivo .apk firmado, se lo coloca en la carpeta /release en su aplicación, pero mi aplicación tenía un archivo apk que no estaba en la carpeta /release . Por lo tanto, pasé horas descomstackndo el apk equivocado preguntándome por qué mis cambios de guardia no tenían ningún efecto. ¡Espero que esto ayude a alguien!