Безопасно ли удалять неиспользуемые константы R. * из APK? - PullRequest
0 голосов
/ 04 октября 2018

Во время разделения приложения на модули я обнаружил, что мы достигли предела числа полей dex:

D8: Cannot fit requested classes in a single dex file. Try supplying a main-dex list.
# fields: 93259 > 65536

После исследования я обнаружил, что большинство (~ 67000) этих полей принадлежит константам из различных R.javaфайлы.

И с добавлением новых модулей это число растет очень быстро, потому что файл R.java каждого модуля содержит константы из всех зависимостей.

Я нашел правило Proguard в proguard-android.txt, которое предотвращает его сжатие:

-keepclassmembers class **.R$* {
    public static <fields>;
}

Поэтому я удалил это правило, и число полей вернулось к нормальному.

Кто-нибудь знает, почему это правило добавляется в конфигурацию proguard по умолчанию и каковы будут последствия, если эти поляуменьшенный Proguard?

...