Gradle : DSL 元素 'useProguard' 已过时,将很快删除
Gradle : DSL element 'useProguard' is obsolete and will be removed soon
自从 Android Studio 3.5 更新后,我在构建我的应用程序时收到此警告:
DSL element 'useProguard' is obsolete and will be removed soon. Use
'android.enableR8' in gradle.properties to switch between R8 and
Proguard..
从 build.gradle 中删除“useProguard”解决了我的问题,例如:
release {
minifyEnabled true
//useProguard true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
2022 年更新,或详细信息; R8
现在是:
- 默认启用,
- 它只是取代了
ProGuard
,
But supports existing .pro
files (and there should be no need to reconfigure).
- 此外,任何禁用 R8 或使用
ProGuard
的方法都已弃用(甚至删除)。
But debug flavors can set debuggable true
, and continue to be debuggable line-by-line.
在项目的 gradle.properties 文件中设置以下内容
android.enableR8=true
R8也有不直接兼容Proguard的full模式。为了尝试这一点,您可以在 gradle.properties 文件
中另外设置以下内容
android.enableR8.fullMode=true
这会启用更多优化,可以进一步减小应用大小。但是,您可能需要一些额外的保留规则才能使其正常工作。
乍一看,当您使用 Android Gradle plugin 3.4.0 或更高版本构建项目时,该插件不再使用 ProGuard 来执行编译时代码优化。相反,该插件默认与 R8 编译器配合使用,以处理压缩、混淆和优化您的应用程序。但是,您可以通过 ProGuard 规则文件禁用某些任务或自定义 R8 的行为。
事实上,R8 适用于所有现有的 ProGuard 规则文件,因此更新 Android Gradle 插件以使用 R8 不需要更改现有规则。
当您使用 Android Studio 3.4 或 Android Gradle 插件 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
文件中另外设置以下内容。3
android.enableR8.fullMode=true
这会启用更多优化,可以进一步减小应用大小。但是,您可能需要一些额外的保留规则才能使其正常工作。在这里了解更多 - https://youtu.be/uQ_yK8kRCaA
R8 是 Android Studio 3.4 及更高版本中可用的默认工具。无需显式启用 R8。只需从 app/build.gradle
文件中删除 useProguard true
行。
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
自从 Android Studio 3.5 更新后,我在构建我的应用程序时收到此警告:
DSL element 'useProguard' is obsolete and will be removed soon. Use 'android.enableR8' in gradle.properties to switch between R8 and Proguard..
从 build.gradle 中删除“useProguard”解决了我的问题,例如:
release {
minifyEnabled true
//useProguard true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
2022 年更新,或详细信息; R8
现在是:
- 默认启用,
- 它只是取代了
ProGuard
,But supports existing
.pro
files (and there should be no need to reconfigure). - 此外,任何禁用 R8 或使用
ProGuard
的方法都已弃用(甚至删除)。But debug flavors can set
debuggable true
, and continue to be debuggable line-by-line.
在项目的 gradle.properties 文件中设置以下内容
android.enableR8=true
R8也有不直接兼容Proguard的full模式。为了尝试这一点,您可以在 gradle.properties 文件
中另外设置以下内容android.enableR8.fullMode=true
这会启用更多优化,可以进一步减小应用大小。但是,您可能需要一些额外的保留规则才能使其正常工作。
乍一看,当您使用 Android Gradle plugin 3.4.0 或更高版本构建项目时,该插件不再使用 ProGuard 来执行编译时代码优化。相反,该插件默认与 R8 编译器配合使用,以处理压缩、混淆和优化您的应用程序。但是,您可以通过 ProGuard 规则文件禁用某些任务或自定义 R8 的行为。
事实上,R8 适用于所有现有的 ProGuard 规则文件,因此更新 Android Gradle 插件以使用 R8 不需要更改现有规则。
当您使用 Android Studio 3.4 或 Android Gradle 插件 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
文件中另外设置以下内容。3
android.enableR8.fullMode=true
这会启用更多优化,可以进一步减小应用大小。但是,您可能需要一些额外的保留规则才能使其正常工作。在这里了解更多 - https://youtu.be/uQ_yK8kRCaA
R8 是 Android Studio 3.4 及更高版本中可用的默认工具。无需显式启用 R8。只需从 app/build.gradle
文件中删除 useProguard true
行。
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}