Я искал для обсуждениякк. Пример, но его нет. Чувствуя, что это платформа, более независимая от ОС, я могу искать просветление здесь.
У меня появилась сильная головная боль после включения письма
proguard.config = $ {sdk.dir} /tools/proguard/proguard-android.txt
в project.properties в базовом каталоге моего проекта.
Я не мог скопировать прошедший текст, потому что экран консоли в Eclipse сразу очищался и отображался так, как будто в этом нет ничего плохого, но я неоднократно получал сообщение «Код ошибки 1. Смотрите консоль».
Хотя проблема, похоже, связана с twitter4j, я уверен, что до этого прокручивалось еще много предупреждений, ну, я не уверен, все это было так внезапно.
Я трахал этот сайт за помощью, и хотя большинство советов состоит из добавления dontwarn
Я чувствую, что мне нужно экспортировать библиотеки, а не копировать libjar в собственную папку lib моего проекта, как я это делал с twitter4j.
Я попытался добавить:
-dontwarn twitter4j.management.**
-dontwarn twitter4j.**
-dontwarn javax.management.**
-dontwarn com.google.api.client.googleapis.extensions.android.gms.**
-keep class javax.** { *; }
-keep class org.** { *; }
-keep class twitter4j.** { *; }
-keep class java.lang.management.** { *; }
-keep class com.google.code.** { *; }
-keep class oauth.signpost.** { *; }
-libraryjars /libs/twitter4j-core-3.0.3.jar
-keep class twitter4j.**
-keepclassmembers class twitter4j.** {
<init>(...);
<methods>;
<fields>;
}
Для proguard-project.txt, но это не имело никакого эффекта. Я не хочу беспокоиться о proguard, так как C ++ в любом случае намного лучше для запутывания. Странно, что ни одно из руководств, которые я читал, не продвигалось, включая весь проект twitter4j. Я предпочитаю небольшую библиотеку 300 КБ. Но нет, если это ограничивает оптимизацию в других отношениях.
Кстати, мой SDK версии 22.6.
____РЕДАКТИРОВАТЬ____
В поисках полного примера я нашел SDK / tools / proguard / examples / android.pro
Я попытался скопировать партию, но безрезультатно, но меня смутила рекомендация в заголовке этого файла:
Android-инструмент? proguard.cfg? Конечно, proguard знает, что новые файлы просто проинструктированы ссылаться на конфиги в каталоге SDK / tools / proguard?
proguard.config = $ {sdk.dir} /tools/proguard/proguard-android.txt
Вы говорите, что изменяете proguard-project.txt, но используете ли вы этот файл? Вы изменили project.properties, чтобы они указывали на ваш файл вместо Android по умолчанию?
proguard.config=proguard-project.txt
Ваш project.properties
Файл должен указывать на конфигурацию Android по умолчанию и на собственную конфигурацию вашего проекта:
proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
Это стандартная строка в файлах свойств, которые генерирует Android SDK.
В вашем proguard-project.txt
файл, вы можете добавить -keep
варианты, чтобы избежать проблем с кодом, который выполняет отражение. В этом случае вы также должны добавить -dontwarn
варианты, чтобы заверить ProGuard, что отсутствующие зависимости не являются проблемой на практике. Затем он продолжит обработку заявки.
Вы не должны добавлять -libraryjars
опций, так как процесс сборки Android уже автоматически указывает все необходимое -injars
, -outjars
, а также -libraryjars
для тебя.