0

当我添加 R8 以缩小 android dex 大小时,它不起作用。我添加了以下行:

gradle.properties:

android.enableR8=true

当试图分析我的代码时,我找不到我的 apk 大小有任何差异。我还缺少其他东西吗?

我是否应该添加任何 proguard 规则并通过添加以下行来启用 progaurd:

构建.gradle

minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
4

1 回答 1

3

正如 sgjesse 在他的评论中建议的那样,您需要在您希望 R8 运行的所有构建类型上启用缩小。

例如,如果您希望 R8 在所有发布版本上运行,minifyEnabled请在您的应用程序级 build.gradle 中使用:

android {
  buildTypes {
    release {
      minifyEnabled true
    }
  }
}

如果您希望 R8 也可以在您的调试版本上运行,那么您也需要minifyEnabled用于调试。

您将此行作为问题的一部分发布:

proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'

仅当除了默认文件proguardFiles中的规则之外,您还有自己想要应用的规则时,才需要以这种方式使用。proguard-android.txt

(如果您使用的是 3.4 之前的 Android Gradle Plugin/Android Studio 版本,您仍然需要android.enableR8=true在 gradle.properties 文件中使用以启用 R8 而不是 ProGuard)

于 2019-04-15T19:05:29.697 回答