Как применить ProGuard на Android-проекте и сервисном проекте одновременно - PullRequest
0 голосов
/ 15 мая 2011

Я пытаюсь использовать proguard в своем приложении для Android, я написал все свои сервисы в отдельном проекте и упаковал через maven в качестве jar сервиса. Я использую этот сервисный jar в качестве зависимости в моем UI-проекте.

Я использую maven android и proguard-maven-plugin для сборки / выпуска своего проекта пользовательского интерфейса. У меня вопрос, как применить Proguard для обоих проектов одновременно, возможно ли это сделать?

Я попытался запустить proguard отдельно для сервисного проекта и добавить этот jar в проект пользовательского интерфейса, но это не сработало. Пожалуйста, помогите мне решить эту проблему.

1 Ответ

1 голос
/ 15 мая 2011

Вы не должны запускать proguard для файла jar, который является ссылкой вашего приложения для Android (в вашем конкретном случае, а не вообще).

Вот как компилируется приложение для Android:

  1. Скомпилируйте все .java файлы в .class.
  2. Разархивируйте все файлы jar и извлеките из них .class файлов.
  3. Применить proguard ко всем .class файлам (файлы .class вашего приложения + файлы .class всех jars).
  4. Преобразование .class файлов в формат dex, в результате чего classes.dex file

Как правило, вы не должны применять proguard к файлу jar, который используется приложением Android. Если вам необходимо применить proguard, убедитесь, что proguard не скрывает все классы, интерфейсы и т. Д., Используемые вашим приложением Android.

Я бы порекомендовал просто использовать шаг сборки системы Android под названием -obfuscate. Это был бы самый простой путь (и он мог бы значительно облегчить вашу жизнь, когда начали поступать сообщения о сбоях).

...