ZipException при конвертации в dex с Ant, в eclipse работает нормально - PullRequest
6 голосов
/ 27 марта 2012

У меня есть проект, который хорошо строится в Eclipse, но выдает исключение ZipException при выполнении "отладки муравья".Вывод следующий (пути и имя проекта исключены)

    -dex:
      [dex] Converting compiled files and external libraries into /home/.../Android/[folder]/bin/classes.dex...
       [dx] 
       [dx] UNEXPECTED TOP-LEVEL EXCEPTION:
       [dx] java.util.zip.ZipException: error in opening zip file
       [dx]     at java.util.zip.ZipFile.open(Native Method)
       [dx]     at java.util.zip.ZipFile.<init>(ZipFile.java:131)
       [dx]     at java.util.zip.ZipFile.<init>(ZipFile.java:148)
       [dx]     at com.android.dx.cf.direct.ClassPathOpener.processArchive(ClassPathOpener.java:206)
       [dx]     at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:131)
       [dx]     at com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:109)
       [dx]     at com.android.dx.command.dexer.Main.processOne(Main.java:418)
       [dx]     at com.android.dx.command.dexer.Main.processAllFiles(Main.java:329)
       [dx]     at com.android.dx.command.dexer.Main.run(Main.java:206)
       [dx]     at com.android.dx.command.dexer.Main.main(Main.java:174)
       [dx]     at com.android.dx.command.Main.main(Main.java:95)
       [dx] 1 error; aborting

BUILD FAILED
/home/.../android-sdk-linux_x86/tools/ant/build.xml:818: The following error occurred while executing this line:
/home/.../android-sdk-linux_x86/tools/ant/build.xml:820: The following error occurred while executing this line:
/home/.../android-sdk-linux_x86/tools/ant/build.xml:832: The following error occurred while executing this line:
/home/.../android-sdk-linux_x86/tools/ant/build.xml:278: null returned: 1

Этот проект ссылается на проект библиотеки, который ссылается на другой проект библиотеки.Итак,

Проект A -> Проект B -> Проект C

Для меня странная часть заключается в том, что установка из eclipse все работает отлично, но мне нужно иметь возможность собрать проект из Ant.

Я гуглил ответы безуспешно.Подобные вопросы в SO, которые не помогли

Как исправить это ZipException при компиляции проекта Android на Jenkins?

Настройка ant для запуска модульных тестов,Где должны быть библиотеки?Как должен быть настроен classpath?избегая ZipException

Ответы [ 2 ]

1 голос
/ 30 ноября 2012

У меня была такая же проблема в моем проекте. Я обнаружил, что запуск ant с флагом отладки '-d' сбрасывает информацию, необходимую для диагностики проблемы. Ant выведет на консоль точную команду dx, и это будет выглядеть примерно так:

Execute:Java13CommandLauncher: Executing '/Users/cliff/android-sdk-macosx/platform-tools/dx' with arguments:
'--dex'
'--output'
'/Users/cliff/Src/myproject/myproject-app/bin/classes.dex'
'/Users/cliff/Src/myproject/myproject-app/bin/classes'
'/Users/cliff/Src/myproject/myproject-config/bin/classes.jar'

В моем случае, один из зависимых проектов (myproject-config) не был построен, поэтому myproject-config / bin / classes.jar отсутствовал. Я вошел в папку myproject-config /, запустил «ant debug», затем вернулся и смог успешно построить мой проект

1 голос
/ 17 октября 2012

Я получал эту же ошибку во время дексинга. Я обнаружил, что причиной этой проблемы был поврежденный файл .jar во включенном проекте библиотеки Android.

Исправление поврежденного файла .jar во включенном проекте библиотеки Android устранило проблему.

Надеюсь, это кому-нибудь поможет! = D

...