Как запутать апк с Proguard через Eclipse? - PullRequest
9 голосов
/ 27 января 2011

Я добавил proguard.config=proguard.cfg в мой файл default.properties и у меня есть файл proguard.cfg в корне моего проекта.Если я теперь использую Экспорт как приложение для Android из Eclipse, я получаю следующие ошибки:

[2011-01-27 11:11:37 - Application] Warning: class [classes/com/package.Class.class] unexpectedly contains class [com/package.Class]
[2011-01-27 11:11:37 - Application] Warning: class [classes/com/package.Class2.class] unexpectedly contains class [com/package.Class2]
[2011-01-27 11:11:37 - Application] Note: there were 145 duplicate class definitions.
[2011-01-27 11:11:37 - Application] Warning: there were 146 classes in incorrectly named files.
[2011-01-27 11:11:37 - Application]          You should make sure all file names correspond to their class names.
[2011-01-27 11:11:37 - Application]          The directory hierarchies must correspond to the package hierarchies.
[2011-01-27 11:11:37 - Application]          If you don't mind the mentioned classes not being written out,
[2011-01-27 11:11:37 - Application]          you could try your luck using the '-ignorewarnings' option.
[2011-01-27 11:11:37 - Application] java.io.IOException: Please correct the above warnings first.
[2011-01-27 11:11:37 - Application]     at proguard.InputReader.execute(InputReader.java:133)
[2011-01-27 11:11:37 - Application]     at proguard.ProGuard.readInput(ProGuard.java:195)
[2011-01-27 11:11:37 - Application]     at proguard.ProGuard.execute(ProGuard.java:78)
[2011-01-27 11:11:37 - Application]     at proguard.ProGuard.main(ProGuard.java:499)

Кажется, что мои классы каким-то образом сохраняются в подпапке классов, но Proguard использует эту подпапку классов как пакет.Поэтому определение классов не может быть понято Proguard.

Это проблема с моей установкой SDK?Или в моей конфигурации Proguard есть ошибки, вызывающие эту проблему?

Ответы [ 3 ]

1 голос
/ 26 октября 2011

Я немного изменил proguard.cfg с того, что у меня работало в прошлом мае, и теперь оно работает:

с

-injars bin

на

-injars bin/classes

Мне также пришлось немного почистить - удалить Junit (который не использовался в этом проекте) и библиотеку совместимости (которую я, вероятно, мог бы проигнорировать, но вместо этого решил вообще отказаться от нее).

0 голосов
/ 17 апреля 2012

Шаги, чтобы получить запутанный apk:

1) Скачать последнюю версию proguard из "http://sourceforge.net/projects/proguard/files/". Текущая последняя версия - proguard4.7

2) Заменить папку" bin "и" lib "из"C: \ Program Files (x86) \ Android \ android-sdk \ tools \ proguard" с последними загруженными папками proguard.

3) Проверьте расположение SDK в затмении на наличие в нем пробелов и перейдите в окно> Настройки> Android. Если есть свободное место, замените его на:

    c:\Progra~2\android\android-sdk (for windows 64-bit)
    c:\Progra~1\android\android-sdk (for windows 32-bit)

4) Убедитесь, что файл proguard.cfg находится в корневой папке вашего проекта и добавьте «proguard.config = proguard.cfg» вФайл project.properties для Android-проекта.

5) Теперь экспортируйте ваш проект, чтобы получить запутанный apk.

Я надеюсь, что это поможет.

0 голосов
/ 27 января 2011

Теперь, когда это удобно, я только что обновился до новой версии Eclipse для ddms: Android DDMS 9.0.0.v201101191456-93220 и обновил свой SDK до новой версии, включающей Honeycomb, и проблема, похоже, исчезла.

...