报错如下:
DSL element ‘useProguard’ is obsolete.
It will be removed in version 7.0 of the Android Gradle plugin.
Use ‘android.enableR8’ in gradle.properties to switch between R8 and Proguard.
这个警告信息表明你在 build.gradle
文件中使用了 useProguard
这个过时的 DSL 元素。从 Android Gradle 插件 7.0 开始,useProguard
将被移除,取而代之的是通过 gradle.properties
文件中的 android.enableR8
属性来切换 R8 和 ProGuard。
解决办法:
-
替换
useProguard
为 R8 配置:- R8 是 Google 推荐的代码优化和混淆工具,它比 ProGuard 更快且更高效。默认情况下,R8 已经启用。
- 如果你不需要特别切换回 ProGuard,可以直接移除
useProguard
的配置。
-
在
gradle.properties
中配置 R8 或 ProGuard:- 如果你想明确控制是否使用 R8 或 ProGuard,可以在项目的
gradle.properties
文件中添加以下配置:# 启用 R8(默认值) android.enableR8=true # 或者禁用 R8,使用 ProGuard android.enableR8=false
- 如果你想明确控制是否使用 R8 或 ProGuard,可以在项目的
-
更新
build.gradle
文件:- 找到
build.gradle
文件中使用useProguard
的地方,通常是这样的:buildTypes { release { useProguard true proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } }
- 将其修改为:
buildTypes { release { proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } }
- 如果你确实需要禁用 R8 并使用 ProGuard,只需在
gradle.properties
中设置android.enableR8=false
,而不需要在build.gradle
中保留useProguard
。
- 找到
-
清理并重新构建项目:
- 修改配置后,执行以下命令清理并重新构建项目:
./gradlew clean ./gradlew build
- 或者在 Android Studio 中选择
Build > Clean Project
和Build > Rebuild Project
。
- 修改配置后,执行以下命令清理并重新构建项目:
注意事项:
- R8 是 Android 官方推荐的代码优化工具,建议优先使用 R8。
- 如果你有自定义的 ProGuard 规则(
proguard-rules.pro
),R8 也完全兼容这些规则,因此切换到 R8 通常不会影响现有的混淆配置。
通过以上步骤,你可以解决 DSL element 'useProguard' is obsolete
的警告,并为未来升级到 Android Gradle 插件 7.0 做好准备。
关注[鹿溪IT工作室],后续我们会不定时分享新的bug修改意见,有时候不一定全对,欢迎大家留言批评指正。