如何使用最新的R8缩小器版本

11

由于一个 bug,我已经使用本地 jar 文件替代 R8 Shrinker(建议由 R8 团队提供)并将其添加到顶部的 gradle.build 的 classpath 中:

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

现在无论Android Studio更新到什么版本,Gradle构建仍然使用我之前使用的旧版本R8 V. 1.4.55。最近我发现他们发布了最新版本:V. 1.4.69https://r8.googlesource.com/r8/。所以我的问题是:如何配置gradle告诉它使用最新版本的R8,因为我没有看到任何关于此的文档。
3个回答

14

您需要添加以下内容:

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:...'
     }
}

6
你可以在这里找到R8的版本:https://r8.googlesource.com/r8/+refs - takahirom
这曾经对我有用,并且确实是一个很好的解决方法,可以应对我突然从R8中遇到的大量崩溃。不幸的是,看起来那个Maven仓库中的二进制文件不再可用了... - milosmns
在https://storage.googleapis.com/r8-releases和https://mvnrepository.com/artifact/com.android.tools/r8中的列表一有什么区别? - Dr.jacky

3
截至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
}

1
目前还没有办法引用最新版本的R8。仅当需要解决错误时,才应使用特定版本的R8,并在该修复程序到达Android Gradle插件时将对特定版本的R8的引用删除,以便只使用内置于Android Gradle插件中的R8。
这样做是为了限制特定版本的R8的使用,避免开发人员停留在旧版本上,并鼓励开发人员使用与Android Gradle插件捆绑的版本。这限制了开发人员使用的不同版本数量。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接