R8 не удаляет неиспользуемые ресурсы из используемой мной библиотеки. Как мне от них избавиться?Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 R8 не удаляет неиспользуемые ресурсы из используемой мной библиотеки. Как мне от них избавиться?

Сообщение Anonymous »

Похоже, что классы сохраняются AAPT, как я вижу по правилам R8 (ProGuard), которые он генерирует, и директиве -whyareyoukeeping. Однако я не знаю, как сказать AAPT не сохранять классы или почему он вообще их сохраняет. Но вот вся история.
Я хочу иметь Snackbar в приложении, поэтому я импортировал библиотеку материалов, которую раньше не использовал. При обычном isShrinkResources = true и отсутствии дополнительного кода (просто импорт библиотеки) размер APK вырос на 25%. Я попробовал режим строгого сжатия, который действительно помог, и даже некоторые общие правила удаления, но даже несмотря на следующее, я все еще мог видеть очень много неиспользуемых виджетов, таких как чипы, присутствующие в APK.

Код: Выделить всё

    // app/src/main/res/raw/keep.xml


Я пытался провести расследование, но безуспешно. -whyareyoukeeping указывает на правило сохранения в aapt_rules.txt, которое гласит:

Код: Выделить всё

-keep class com.google.android.material.chip.Chip { (android.content.Context, android.util.AttributeSet); }
В файле app/build/outputs/mapping/release/resources.txt есть ссылки на чипы, вот некоторые из них, и я надеюсь, что нашел примеры для всех типов записей в этом огромном выводе:

Код: Выделить всё

Marking attr:chipStyle:2130968776 reachable: referenced from in_memory_r8_base_classes0.dex
Marking style:Widget_MaterialComponents_Chip_Action:2131952698 reachable: referenced from in_memory_r8_base_classes0.dex
...
@myapppackage:animator/m3_chip_state_list_anim : reachable=false
@myapppackage:integer/m3_chip_anim_duration
@myapppackage:dimen/m3_chip_checked_hovered_translation_z
...
The root reachable resources are:
attr:chipStyle:2130968776
string:mtrl_chip_close_icon_content_description:2131886281
style:Widget_MaterialComponents_Chip_Action:2131952698
...
Unused resources are:
animator:m3_chip_state_list_anim:2130837518
Все это не дает точного ответа на вопросы:
  • Почему AAPT настаивает на сохранении ресурсов? и
  • Как я могу избавиться от них, индивидуально или массово?
(Используя Gradle 8.13, библиотеку материалов 1.12.0 и android.r8.optimizedResourceShrinking=true.)

Подробнее здесь: https://stackoverflow.com/questions/797 ... -get-rid-o
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»