Проект библиотеки Android: запутать и сохранить ресурсы

Я хочу скомпилировать с помощью 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

person QuickNick    schedule 10.02.2012    source источник
comment
Зачем нужен конфиг proguard в проектах библиотеки? Используется конфигурация proguard в целевом проекте.   -  person pandre    schedule 10.02.2012
comment
Неважно, добавляю я proguard.config в библиотечные проекты или удаляю их. Я сказал об этом только для полной информации.   -  person QuickNick    schedule 11.02.2012
comment
Выложите файл конфигурации proguard.   -  person 500865    schedule 21.02.2012


Ответы (2)


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

person pandre    schedule 16.02.2012
comment
Я использую последние обновления ADT (регулярно проверяю наличие обновлений) и Android Tools. Eclipse имеет версию Helios. - person QuickNick; 16.02.2012
comment
Поскольку сегодня плагин ADT позволяет мне скомпилировать библиотеку с запутыванием, я решил закрыть вопрос и подарить вам принятый ответ. - person QuickNick; 03.07.2012

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

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

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

person WarrenFaith    schedule 21.02.2012
comment
Я включаю ссылку на ALP, как вы описываете: Настройки проекта -> Добавить библиотеку. Экспортных банок нет. - person QuickNick; 22.02.2012