DSL element ‘useProguard‘ is obsolete. It will be removed in version 7.0 of the Android Gradle plugi

报错如下:

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。

解决办法:

  1. 替换 useProguard 为 R8 配置

    • R8 是 Google 推荐的代码优化和混淆工具,它比 ProGuard 更快且更高效。默认情况下,R8 已经启用。
    • 如果你不需要特别切换回 ProGuard,可以直接移除 useProguard 的配置。
  2. gradle.properties 中配置 R8 或 ProGuard

    • 如果你想明确控制是否使用 R8 或 ProGuard,可以在项目的 gradle.properties 文件中添加以下配置:
      # 启用 R8(默认值)
      android.enableR8=true
      
      # 或者禁用 R8,使用 ProGuard
      android.enableR8=false
      
  3. 更新 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
  4. 清理并重新构建项目

    • 修改配置后,执行以下命令清理并重新构建项目:
      ./gradlew clean
      ./gradlew build
      
    • 或者在 Android Studio 中选择 Build > Clean ProjectBuild > Rebuild Project

注意事项:

  • R8 是 Android 官方推荐的代码优化工具,建议优先使用 R8。
  • 如果你有自定义的 ProGuard 规则(proguard-rules.pro),R8 也完全兼容这些规则,因此切换到 R8 通常不会影响现有的混淆配置。

通过以上步骤,你可以解决 DSL element 'useProguard' is obsolete 的警告,并为未来升级到 Android Gradle 插件 7.0 做好准备。

关注[鹿溪IT工作室],后续我们会不定时分享新的bug修改意见,有时候不一定全对,欢迎大家留言批评指正。