Gradle: элемент DSL 'useProguard' устарел и скоро будет удален

Начиная с версии 3.5 Android Studio, при создании приложения появляется следующее предупреждение:

Элемент DSL 'useProguard' устарел и будет удален в ближайшее время. Используйте 'android.enableR8' в gradle.properties для переключения между R8 и Proguard.

4 ответа

Включение R8 в файл gradle.properties:

android.enableR8=true

И удаляем "useProguard" в build.gradle:

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

исправил проблему.

Установите следующее в файле gradle.properties вашего проекта

android.enableR8=true

R8 также имеет полный режим, который напрямую не совместим с Proguard. Чтобы попробовать это, вы можете дополнительно установить в своем файле gradle.properties следующее:

android.enableR8.fullMode=true

Это включает дополнительные оптимизации, которые могут еще больше уменьшить размер приложения. Однако вам может потребоваться несколько дополнительных правил хранения, чтобы он работал.

С первого взгляда, когда вы создаете свой проект с использованием плагина Android Gradle 3.4.0 или выше, плагин больше не использует ProGuard для оптимизации кода во время компиляции. Вместо этого плагин по умолчанию работает с компилятором R8 для обработки сжатия, обфускации и оптимизации вашего приложения. Однако вы можете отключить определенные задачи или настроить поведение R8 с помощью файлов правил ProGuard.

Фактически, R8 работает со всеми вашими существующими файлами правил ProGuard, поэтому обновление плагина Android Gradle для использования R8 не должно требовать от вас изменения существующих правил.

Когда вы используете Android Studio 3.4 или Android Gradle plugin 3.4.0 и выше, R8 является компилятором по умолчанию, который преобразует байт-код Java вашего проекта в формат DEX, который работает на платформе Android. Однако при создании нового проекта с помощью Android Studio сжатие, обфускация и оптимизация кода по умолчанию не включены. Вы можете включить их, используя приведенный ниже код -

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'
        }
    }
    ...
}

Для любителей приключений в R8 также есть полный режим. Чтобы опробовать это, вы можете дополнительно установить в своемgradle.properties файл.3

android.enableR8.fullMode=true

Это включает дополнительные оптимизации, которые могут еще больше уменьшить размер приложения. Однако вам может потребоваться несколько дополнительных правил хранения, чтобы он работал. Узнайте больше здесь - https://youtu.be/uQ_yK8kRCaA

R8 - это инструмент по умолчанию, доступный в Android Studio 3.4 и новее. Нет необходимости явно включать R8. Просто удалите useProguard true линия от app/build.gradle файл.

      buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
Другие вопросы по тегам