当我添加R8来缩小android dex大小时,它不起作用。 我已添加以下行:
android.enableR8=true
当尝试分析我的代码时,我的apk大小找不到任何差异。 还有我想念的东西吗?
我应该添加任何保护规则并通过添加以下行来启用progaurd:
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
答案 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)