web-dev-qa-db-fra.com

Comment activer l'obfuscation de ProGuard dans Android Studio?

Je dois protéger mon application en activant l'obscurcissement de Proguard dans Android Studio. J'ai cherché comment l'appliquer, mais je n'ai pas obtenu de solution claire. Quand je l'essaie, j'ai toujours Quelqu'un peut-il me dire les étapes à suivre pour l'appliquer à mon application?

Je le fais par les étapes suivantes:

  1. Dans Android Studio, ouvrez un projet Android.

  2. Passer à la vue du projet.

  3. Changer la ligne suivante:

    minifyEnable false à minifyEnable true

  4. Définir les règles ProGuard (facultatif)

    4.1 Dans la vue Projet, sélectionnez le fichier proguard-rules.pro.

    4.2 Ajoutez les lignes suivantes pour indiquer à ProGuard de ne pas masquer certaines classes.

    -keepclassmembers class com.dom925.xxxx 
    {
      public *
    }
    

Erreur que je reçois en suivant les étapes sont

Erreur: L'exécution a échoué pour la tâche ': app: packageRelease'. Impossible de calculer le hachage de D:\Android\Nom du projet\app\build\intermédiaires\classes-proguard\release\classes.jar

25
visual process

J'ai compris le problème:

Ouvrez le fichier proguard-rules.pro pour votre projet et ajoutez-le au bas:

-dontwarn Java.nio.file.Files
-dontwarn Java.nio.file.Path
-dontwarn Java.nio.file.OpenOption
-dontwarn org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement

Fondamentalement, comment j'ai résolu ce problème, j'ai essayé d'exécuter mon application en mode 'release' et j'ai eu un tas d'erreurs similaires à ce type ici: https://github.com/square/okio/issues/144

J'ai suivi à peu près ce qu'il a dit et je l'ai corrigé.

J'espère que cela pourra aider les autres à générer leurs fichiers APK!

visitez plus de détail ici:

Erreur: L'exécution a échoué pour la tâche ': app: packageRelease'.> Impossible de calculer le hachage de /../AndroidStudioProjects/../classes.jar

12
Harshad

Pour activer ProGuard dans Android Studio.

Vous trouverez ci-dessous un exemple d'activation de ProGuard par défaut dans Android Studio.

  1. Accédez au fichier build.gradle de l'application
  2. activer le minifyEnabled true
  3. enable shrinkResources true pour réduire la taille de l'APK
  4. proguardFiles getDefaultProguardFile('proguard-Android.txt') pour activer celui par défaut. Si vous souhaitez utiliser votre propre fichier proguard, utilisez les règles ci-dessous.

    buildTypes {
        release {
            debuggable false
            minifyEnabled true
            shrinkResources true
            proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro'
        }
    
        debug {
            debuggable true
            minifyEnabled true
            shrinkResources true
            proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro'
        }
    }
    

Le lien avec les paramètres ProGuard pour Android et d’autres paramètres est disponible dans les liens suivants:

Pour plus de détails, passez ce lien

48
Maheshwar Ligade

si vous construisez le projet Android avec jack, il effectuera automatiquement la réduction, l’obscurcissement, le reconditionnement et le multidex. Ajoutez simplement ci-dessous dans:

defaultConfig {
       jackOptions {
            enabled true
        }        
    }

et dans les types de construction, mentionnez le fichier project proguard:

buildTypes {
        release {
            // Jack build environment does not require minifyEnabled or shrinkResources.
            // Conceptually, the jack compiler consolidates the functionality of javac, ProGuard, and dex in a single conversion step
            //minifyEnabled = true      
            //shrinkResources true

            proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-project.txt'
       }

       debug {
...................
        }
    } 

Pour désactiver l'obfuscation de ProGuard, il est nécessaire d'ajouter la ligne ci-dessous dans votre fichier proguard-project.txt.

####No obfuscation
-dontobfuscate
2
appapurapu