Раньше я мог следовать руководству здесь , чтобы без проблем установить и запустить Proguard как часть сборки. Однако после обновления до последней версии инструментов ADT у меня возникли проблемы. Первая проблема, с которой я сталкиваюсь:
BUILD FAILED
/home/myhome/projects/myapp/add-proguard-release.xml:14:
/home/myhome/projects/myapp/${out.classes.dir} does not exist.
Так что в итоге мне приходится определять $ {out.classes.dir} вручную в local.properties или project.properties. Не конец света, но немного боли.
Вторая, более радикальная проблема связана с внешними банками. У меня есть небольшой класс во внешней банке. Когда приложение запускается на устройстве, оно вылетает:
11-15 18:35:30.090: E/AndroidRuntime(28258): java.lang.NoClassDefFoundError: com.mysoftware.informaltimeprovider.InformalTimeProvider
11-15 18:35:30.090: E/AndroidRuntime(28258): at com.mysoftware.pagemonitor.PrintableTimeProvider.getInformalTime(PrintableTimeProvider.java:14)
Сбой при попытке создать экземпляр InformalTimeProvider, но, судя по выводу logcat, этот класс не был запутан, поэтому я не знаю, почему возникает проблема.
При сборке появляется предупреждение:
[proguard] Copying resources from program jar [/home/myhome/projects/pagemonitor/libs/InformalTimeProvider.jar]
[proguard] Warning: can't write resource [META-INF/MANIFEST.MF] (Duplicate zip entry [InformalTimeProvider.jar:META-INF/MANIFEST.MF])
Это всего лишь предупреждение - я не ожидал бы крушения.
Любая помощь с благодарностью получена.
Barry