web-dev-qa-db-ja.com

Gradle:DSL要素「useProguard」は廃止され、間もなく削除されます

Android Studioの3.5アップデート以降、アプリのビルド時に次の警告が表示されます:

DSL要素「useProguard」は廃止され、間もなく削除されます。 gradle.propertiesで「Android.enableR8」を使用して、R8とProguardを切り替えます。

16
Denis

R8をgradle.propertiesファイルで有効にする:

Android.enableR8=true

そして、「useProguard」をbuild.gradleに削除します:

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

問題を修正しました。

36
Denis

プロジェクトのgradle.propertiesファイルに以下を設定します

Android.enableR8=true

R8には、Proguardと直接互換性のないフルモードもあります。それを試すために、gradle.propertiesファイルに以下を追加設定することができます

Android.enableR8.fullMode=true

これにより、より多くの最適化が有効になり、アプリのサイズをさらに削減できます。ただし、機能させるためにいくつかの追加の保持ルールが必要になる場合があります。

5
Praveen

一目で、 Android Gradleプラグイン3.4. 以上を使用してプロジェクトをビルドすると、プラグインはProGuardを使用してコンパイル時のコード最適化を実行しなくなります。代わりに、プラグインはデフォルトでR8コンパイラーと連携して、アプリの縮小、難読化、最適化を処理します。ただし、特定のタスクを無効にしたり、ProGuardルールファイルを使用してR8の動作をカスタマイズしたりできます。

実際、R8は既存のすべてのProGuardルールファイルで機能するため、R = 8を使用するようにAndroid Gradleプラグインを更新しても、既存のルールを変更する必要はありません。

Android Studio 3.4またはAndroid Gradle plugin 3.4.0以降を使用する場合、R8はプロジェクトのJava Androidプラットフォームで実行されるDEX形式へのバイトコード。ただし、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 file.3

Android.enableR8.fullMode=true

これにより、より多くの最適化が有効になり、アプリのサイズをさらに削減できます。ただし、機能させるためにいくつかの追加の保持ルールが必要になる場合があります。詳細はこちら- https://youtu.be/uQ_yK8kRCaA

0
Anoop M