Android新的减震工具R8无法反映APK大小的任何变化

时间:2019-04-01 09:56:53

标签: android dex r8

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

gradle.properties:

android.enableR8=true

当尝试分析我的代码时,我的apk大小找不到任何差异。 还有我想念的东西吗?

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

build.gradle

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

1 个答案:

答案 0 :(得分:2)

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

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

android {
  buildTypes {
    release {
      minifyEnabled true
    }
  }
}

如果您希望R8也可以在调试版本上运行,则还需要使用minifyEnabled进行调试。

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

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

仅当您拥有自己的规则(默认proguardFiles文件中的规则除外)时,才有必要以这种方式使用proguard-android.txt

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