Как исключить имя пакета и имя подпакета при использовании progaurd в Android Studio? - PullRequest
0 голосов
/ 11 июля 2020

У меня есть имя пакета моего проекта

in.myapplication.app

, и у меня есть пакет, который также содержит несколько пакетов, таких как этот

in.myapplication.app.samplePackage

in.myapplication.app.samplePackage.SubPackage

Теперь я хочу исключить все присутствующие классы внутри пакета samplePackage, включая классы подпакетов. Я пробовал это правило сохранения внутри файла progaurd

-keep class  in.myapplication.app.samplePackage.*{*;}

Но оно разрешает только классы, которые находятся в samplePackage, а не в samplePackage.SubPackage

Я проверял похожие вопросы

  1. Как сохранить / исключить конкретный путь к пакету при использовании proguard?
  2. Заставить Proguard полностью игнорировать пакет

Ничего не работало, и я пытался использовать эти

-keep class in.myapplication.app.samplePackage.** {*;}

Но он показывает мне предупреждение

Неразрешенное ссылочное имя в файле конфигурации сжатия

Итак, как чтобы исключить имя пакета и имя подпакета при использовании progaurd В Android Studio?

Ответы [ 2 ]

0 голосов
/ 05 августа 2020

На Android Studio 4.0 и выше двойные звездочки () ** больше не компилируются. Поэтому, если вы хотите исправить эту ошибку и исключить подпакеты, сделайте это так:

-keep class in.myapplication.app.samplePackage.*.* {*;}

, это также исключит пакеты внутри samplePackage, а также

0 голосов
/ 05 августа 2020

Правильное правило хранения всего в пакете in.myapplication.app.samplePackage и всех подпакетах:

-keep class in.myapplication.app.samplePackage.** {*;}

Предупреждение, которое вы видите, могло быть ложноотрицательным, см. issue 153616200 .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...