Android Shriking R8 не отражает каких-либо изменений в размере APK

Когда я добавляю R8, чтобы уменьшить размер Android dex, он не работает. Я добавил следующую строку:

gradle.properties:

android.enableR8=true

Когда я попытался проанализировать мой код, я не смог найти никакой разницы в размере моего apk. Я скучаю по чему-то еще?

Должен ли я добавить какие-либо правила proguard и включить progaurd, добавив следующие строки:

build.gradle

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

1 ответ

Как предложил 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 файл.

(Вам все еще нужно использовать android.enableR8=true в вашем файле gradle.properties включить R8 вместо ProGuard, если вы используете версию Android Gradle Plugin/Android Studio до 3.4)

Другие вопросы по тегам