Android Library Project: запутать и сохранить ресурсы - PullRequest
11 голосов
/ 10 февраля 2012

Я хочу скомпилировать с Proguard свой проект Android с некоторыми дополнительными проектами библиотек Android.Фактически, большая часть кода и ресурсов находится в этих библиотеках.

Я добавил строку "proguard.config = proguard.cfg" в project.properties основного проекта, настроил cfg-файл (-Libraryjars .. \ libs).Затем - щелкните правой кнопкой мыши, Инструменты Android -> Экспорт подписанного пакета приложений.ADT скомпилировал проект для релиза, но приложение зависло при первом запуске: как я читал из журнала, это было из-за неправильного указателя ресурса.

Я декомпилировал проект и обнаружил очень странную вещь: если я объявил ресурсбиблиотека, затем указатель ресурса становится 0.

Проблема не исчезла, когда я добавил строку "proguard.config = proguard.cfg" в project.properties всего моего проекта библиотеки Android.

Есть какие-нибудь решения?

Редактировать: посмотрите на фрагмент proguard.cfg:

-optimizationpasses 5
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-dontpreverify
-verbose
-optimizations !

-printusage unused.txt
-optimizationpasses 2
-printmapping mapping.txt
# -overloadaggressively
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-dontpreverify
-verbose
-dump class_files.txt
-printseeds seeds.txt

-libraryjars ..\libs

Ответы [ 2 ]

1 голос
/ 21 февраля 2012

Как вы включаете / ссылаетесь на свои проекты библиотек Android?Если я правильно прочитал, вы добавляете их как банку?Если это так, у вас действительно могут возникнуть проблемы с ресурсами, предоставляемыми проектами библиотеки.

Если я прав, попробуйте следующее:

Используйте настройки проекта и добавьте туда свои проекты библиотеки.Не используйте некоторые экспортированные банки для этого.Работа проекта библиотеки Android отличается от обычной работы библиотеки Java.

1 голос
/ 16 февраля 2012

Вы уверены, что у вас есть новейшие инструменты?Как Eclipse Indigo, ADT v16.0.1 и Proguard 4.7?У меня также были проблемы перед обновлением до последних инструментов.

...