Вопрос по android, obfuscation, adt, proguard – Экспорт проекта Android с использованием proguard на adt & sdk 20
Я обновился до новогоADT & SDK 20и у меня возникли проблемы с новым способом использования Proguard в Eclipse. Я вообще не профессионал в Proguard, но я всегда использовал его, и он работал довольно легко. Я просто отредактировал & quot; project.properties & quot; добавили туда файл "proguard.config = proguard.cfg", и все заработало.
К сожалению, некоторые изменения были внесены, и я не могу найти никакой информации о том, как с ними работать. Официальный сайт, который говорит о Proguard (на сайте Android), все еще говорит о старом пути.
Они написали в "Project.properties" раскомментировать следующую строку:
#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
Это не сработало, это выдает мне следующие ошибки при попытке экспорта:
Proguard returned with error code 1. See console
java.io.IOException: The output jar is empty. Did you specify the proper '-keep' options?
at proguard.shrink.Shrinker.execute(Shrinker.java:159)
at proguard.ProGuard.shrink(ProGuard.java:275)
at proguard.ProGuard.execute(ProGuard.java:101)
at proguard.ProGuard.main(ProGuard.java:492)
Кто-нибудь может мне с этим помочь? Мне никогда не приходилось менять файл proguard.cfg, и все было полностью автоматически. Это было очень редко, что я должен был сделать такую вещь.
Они также добавили файл "proguard-project.txt" который, вероятно, заменяет proguard.cfg и "extends" из файла папки sdk, поэтому я задаюсь вопросом: будет ли нормально вместо этого ссылаться на файл в проекте (и поместить в файл содержимое файла & quot; parent?)? Если да, то как мне это сделать?
я решил скопировать proguard-project.txt из $ {sdk.dir} / tools / proguard / в рабочую область моего проекта.
Если вы посмотрите на project.properties, вы увидите, что он ссылается${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
.
Он нашел $ {sdk.dir} просто отлично, но искал proguard-project.txt в каталоге проекта.
решение в том, что по какой-то причине у меня было неправильное расположение для переменной sdk.dir в eclipse.
Итак, что я сделал, чтобы:
Go to eclipse's preferences Searched for variables And went to java->build path->classpath variables And added "sdk.dir" variable with the value of the directory of android sdk .просто измените эту строку:
proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
к этой строке:
proguard.config=proguard.cfg
тогда вы вернете старую настройку Proguard, но я рекомендую обновить, но она должна работать, если вы не используете какие-нибудь сторонние фляги? Это то, что, по его словам, отсутствует, и вы должны использовать флаг -keep, чтобы Proguard не удалял их, когда он запутывает.