Не удалось экспортировать приложение после обновления до Proguard 4.8

Я только что обновил Android SDK, ADT и Proguard до последней и самой большой.

Мой проект компилирует и работает отлично в режиме отладки, но как только я пытаюсь экспортировать подписанный выпуск APK, я получаю сообщение об ошибке от мастера экспорта без сообщений об ошибках на консоли Eclipse! *

Введите описание изображения здесь

Если я попытаюсь просмотреть журнал ошибок через Window->Show View->Error Log все, что я вижу, больше того же:

Введите описание изображения здесь

Я понятия не имею, что делать, потому что ни Eclipse, ни Proguard не подскажут, что может быть проблемой.

Мой проект экспортировался до этого последнего обновления. Нет предупреждений о сборке. Никаких предупреждений!

Я использую стандартный файл конфигурации для Android в ${sdk.dir}\tools\proguard\proguard-android.txt :

 -dontusemixedcaseclassnames -dontskipnonpubliclibraryclasses -verbose -dontoptimize -dontpreverify -keepattributes *Annotation* -keep public class * extends android.app.Activity -keep public class * extends android.app.Application -keep public class * extends android.app.Service -keep public class * extends android.content.BroadcastReceiver -keep public class * extends android.content.ContentProvider -keep public class * extends android.app.backup.BackupAgent -keep public class * extends android.app.backup.BackupAgentHelper -keep public class * extends android.preference.Preference -keep public class * extends android.support.v4.app.Fragment -keep public class * extends android.app.Fragment -keep public class com.android.vending.licensing.ILicensingService -keepclasseswithmembernames class * { native <methods>; } -keep public class * extends android.view.View { public <init>(android.content.Context); public <init>(android.content.Context, android.util.AttributeSet); public <init>(android.content.Context, android.util.AttributeSet, int); public void set*(...); } -keepclasseswithmembers class * { public <init>(android.content.Context, android.util.AttributeSet); } -keepclasseswithmembers class * { public <init>(android.content.Context, android.util.AttributeSet, int); } -keepclassmembers class * extends android.app.Activity { public void *(android.view.View); } -keepclassmembers enum * { public static **[] values(); public static ** valueOf(java.lang.String); } -keep class * implements android.os.Parcelable { public static final android.os.Parcelable$Creator *; } -keepclassmembers class **.R$* { public static <fields>; } -dontwarn android.support.** 

И proguard.cfg моего проекта содержит только:

 -assumenosideeffects class android.util.Log { public static *** v(...); public static *** i(...); public static *** d(...); public static *** w(...); public static *** e(...); } 

Кто-нибудь видел эту проблему раньше? Любая идея, как это исправить?

Какой прогресс? Я впервые смог экспортировать подписанный APK с момента его обновления:

  1. Я запустил CCleaner для очистки всех временных файлов и кешей в системе Windows,
  2. Затем я перезагрузил Windows.

Но, к моему ужасу, в следующий раз, когда я попытался экспортировать подписанный APK снова, я получил то же самое Failed to export application без консольных сообщений! Еще раз!

Теперь мне ясно, что инструменты Android dev стали неустойчивыми. Я не могу запустить CCleaner и перезагружать Windows каждый раз, когда хочу экспортировать подписанный APK. И мне все равно, чья это вина: Android SDK? Плагин ADT? Proguard?

Что мне теперь делать?

Еще один прогресс? Я попытался экспортировать подписанный APK с выключенным Proguard. Он экспортируется нормально, но когда я его запускаю, он сразу же падает из-за невозможности найти класс активности приложения ( ClassNotFoundException ). Это странно! Он отлично работает в режиме отладки и если класс активности приложения не существует, он не должен компилироваться! Что происходит? Являются ли последние и самые лучшие инструменты Android dev нарушенными?

Я попробовал играть с вкладкой « Order and Export », как описано в этом решении (и это тоже), но это не помогло.

Что мне теперь делать?

Вы используете Windows XP, поэтому я не уверен, что смогу помочь (я использую 64-разрядную версию Windows 7), но ваш комментарий к @ Boe-Dev о «17 неразрешенных ссылках на классы» напомнил мне о моем недавнем испытании с Обновление похоже на ваше:

Я решил это , разместив следующую строку в proguard.cfg :

 -dontwarn com.bta.myapp.MyAppActivity.R** 

Не знаю, была ли ваша проблема такой же, как у меня, но, возможно, стоит попробовать.

EDIT: Заметив, что даже когда вы выключаете Proguard, у вас возникают проблемы, могу ли я предложить следующее?

  1. Удалите библиотеки со стандартного пути сборки Java: щелкните правой кнопкой мыши по имени проекта> Свойства> вкладка «Путь сборки Java»> «Библиотеки»> удалите все, кроме «Android XX» и «Android Dependencies»,
  2. Переименуйте папку библиотек из «lib» в «libs». Таким образом, все библиотеки в папке «libs» находятся в плагине Android и добавляются в элемент «Android Dependencies» проекта
  3. Очистите проект (всегда необходимо, учитывая, насколько непредсказуемы инструменты Android dev)

Дайте нам знать, как это работает.

Как насчет вашего журнала ошибок. Окно-> Показать вид-> Журнал ошибок. Является отдельным для вывода консоли, код ошибки 1, как правило, отображается здесь.

Попробуйте переустановить плагин ADT в eclipse

Вот ключ, который работал для меня

http://android.foxykeep.com/dev/fix-the-conversion-to-dalvik-format-failed-with-error-1-with-adt-14

Предположительно, установленный в ADT-15, обходным путем является

1) Для каждого элемента X_src щелкните его правой кнопкой мыши, а затем «Путь сборки»> «Удалить из пути сборки».

2) Всплывающее окно откроется. Убедитесь, что флажок «Отключить папку из проекта» установлен, а затем принять его.

Вы все равно можете отлаживать библиотечный код, но вам нужно управлять своими точками останова в этих проектах, а затем переходить через код на вкладках файлов классов.