web-dev-qa-db-fra.com

Gradle: l'élément DSL 'useProguard' est obsolète et sera bientôt supprimé

Depuis la mise à jour 3.5 de Android Studio, j'ai cet avertissement lors de la construction de mon application:

L'élément DSL 'useProguard' est obsolète et sera bientôt supprimé. Utilisez 'Android.enableR8' dans gradle.properties pour basculer entre R8 et Proguard.

16
Denis

Activation de R8 dans le fichier gradle.properties:

Android.enableR8=true

Et en supprimant "useProguard" dans build.gradle:

release {
            minifyEnabled true
            //useProguard true
            proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro'
        }

résolu le problème.

36
Denis

définissez les éléments suivants dans le fichier gradle.properties de votre projet

Android.enableR8=true

Le R8 dispose également d'un mode complet qui n'est pas directement compatible avec Proguard. Pour essayer cela, vous pouvez également définir les éléments suivants dans votre fichier gradle.properties

Android.enableR8.fullMode=true

Cela active plus d'optimisations, ce qui peut réduire davantage la taille de l'application. Cependant, vous pourriez avoir besoin de quelques règles de conservation supplémentaires pour le faire fonctionner.

5
Praveen

En un coup d'œil, lorsque vous générez votre projet en utilisant plug-in Android Gradle 3.4. ou supérieur, le plug-in n'utilise plus ProGuard pour effectuer l'optimisation du code au moment de la compilation. Au lieu de cela, le plugin fonctionne avec le compilateur R8 par défaut pour gérer le rétrécissement, l'obscurcissement et l'optimisation de votre application. Cependant, vous pouvez désactiver certaines tâches ou personnaliser le comportement de R8 via les fichiers de règles ProGuard.

En fait, R8 fonctionne avec tous vos fichiers de règles ProGuard existants, donc la mise à jour du plugin Android Gradle pour utiliser R8 ne devrait pas vous obliger à modifier vos règles existantes.

Lorsque vous utilisez Android Studio 3.4 ou Android le plug-in Gradle 3.4.0 et supérieur, R8 est le compilateur par défaut qui convertit le bytecode Java de votre projet au format DEX qui s'exécute sur Android plateforme. Cependant, lorsque vous créez un nouveau projet à l'aide de Android Studio, la réduction, l'obscurcissement et l'optimisation de code ne sont pas activés par défaut. Vous pouvez les activer en utilisant le code ci-dessous -

Android {
    buildTypes {
        release {
            // Enables code shrinking, obfuscation, and optimization for only
            // your project's release build type.
            minifyEnabled true

            // Enables resource shrinking, which is performed by the
            // Android Gradle plugin.
            shrinkResources true

            // Includes the default ProGuard rules files that are packaged with
            // the Android Gradle plugin. To learn more, go to the section about
            // R8 configuration files.
            proguardFiles getDefaultProguardFile(
                    'proguard-Android-optimize.txt'),
                    'proguard-rules.pro'
        }
    }
    ...
}

Pour les plus aventureux, R8 dispose également d'un mode complet. Pour essayer cela, vous pouvez en outre définir ce qui suit dans votre fichier gradle.properties .3

Android.enableR8.fullMode=true

Cela active plus d'optimisations, ce qui peut réduire davantage la taille de l'application. Cependant, vous pourriez avoir besoin de quelques règles de conservation supplémentaires pour le faire fonctionner. En savoir plus ici - https://youtu.be/uQ_yK8kRCaA

0
Anoop M