如何使用最新的 R8 Shrinker 版本

How to use latest R8 Shrinker version

由于一个错误,我使用了 R8 Shrinker 的本地 jar 文件(由 R8 团队推荐)并将类路径添加到顶部 gradle.build :

classpath files($..../R8.jar/$)

现在,无论对 Android Studio 进行任何更新,Gradle 构建仍然使用我之前使用的旧版本 R8 V. 1.4.55

最近我看到他们发布了最新版本:V. 1.4.69 https://r8.googlesource.com/r8/

所以我的问题是:如何配置 gradle 以告知使用最新版本的 R8,因为我没有看到任何关于此的文档

您应该添加以下内容:

buildscript {
    repositories {
        maven {
            url 'http://storage.googleapis.com/r8-releases/raw'
        }
    }
    dependencies {
        classpath 'com.android.tools:r8:1.4.71'  //Must be before the Gradle Plugin for Android. - Or any other version
        classpath 'com.android.tools.build:gradle:...'
     }
}

目前没有办法参考最新版本的R8。使用特定版本的 R8 只能用于解决错误,当该修复到达 Android Gradle 插件时,应删除对特定版本 R8 的引用以仅使用内置的 R8 Android Gradle 插件。

这是为了限制特定R8版本的使用,避免开发者停留在旧版本上,鼓励开发者使用AndroidGradle插件捆绑的版本。这限制了开发者使用的不同版本的数量。

自 2020 年 7 月起,您可以执行以下操作:

将此添加到您的 build.gradle 文件(针对项目,而非应用程序)

 dependencies {
        classpath 'com.android.tools:r8:2.0.88'  // Must be before the Gradle Plugin for Android.
       // in addition to everything else that was here ....
    }

整个文件应该是这样的,供参考:

    // Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
    repositories {
        google()
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools:r8:2.0.88'  // Must be before the Gradle Plugin for Android.
        classpath 'com.android.tools.build:gradle:4.0.0'
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        google()
        jcenter()
        maven { url "https://jitpack.io" }
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}