Ответ 1
Вы уверены, что у вас есть новейшие инструменты? Как Eclipse Indigo, ADT v16.0.1 и proguard 4.7? У меня также были проблемы перед обновлением до последних инструментов.
Я хочу скомпилировать с Proguard мой проект Android с некоторыми дополнительными проектами библиотеки Android. Фактически, большая часть кода и ресурсов находится в этих библиотеках.
Я добавил строку "proguard.config = proguard.cfg" в project.properties основного проекта, я настроил cfg файл (-libraryjars..\libs). Затем - щелкните правой кнопкой мыши, Android Tools → Export Signed Application Package. 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
Вы уверены, что у вас есть новейшие инструменты? Как Eclipse Indigo, ADT v16.0.1 и proguard 4.7? У меня также были проблемы перед обновлением до последних инструментов.
Как вы включаете/ссылаетесь на свои проекты в библиотеке Android? Если я прочитаю это правильно, вы добавите их в качестве банки? Если это так, у вас действительно могут возникнуть проблемы с ресурсами, предоставляемыми библиотечными проектами.
Если я прав, попробуйте следующее:
Используйте настройки проекта и добавьте туда свои проекты библиотек. Не используйте для этого некоторые экспортированные банки. Способ работы с библиотекой Android отличается от обычной библиотеки java.