it-swarm.com.ru

не удалось прочитать архив для требуемой библиотеки или он не является допустимым Zip-файлом

Прежде чем перейти к проблеме, позвольте мне объяснить, что я сделал, что привело меня к проблеме.

  1. Я создал учетную запись на github и создал репозиторий под названием Android.
  2. Затем я установил клиент Github в моем Windows 7.
  3. Затем я открыл этот клиент, предоставил свою аутентификацию и клонировал репозиторий в локальный каталог C:\Users\Aniket\Documents\GitHub\Android (в этой папке есть папка .git).
  4. Затем я перешел к своему Eclipse ADT и установил плагин EGit, как описано здесь . Также я 
  5. Затем в Eclipse я щелкаю правой кнопкой мыши по своему проекту TicTacToe, захожу в Team->Share Project и указываю свой путь к хранилищу, т.е. C:\Users\Aniket\Documents\GitHub\Android.
  6. Мой проект был добавлен в локальный репозиторий, и в моем клиенте github он показывает мне все возможности для фиксации файла в реальном репозитории на сайте github.
  7. Но мой проект внезапно показывает ошибку с красным '!' подпишите это. 

    Описание -> Архив для необходимой библиотеки: «C:/Users/Aniket/AndroidWorkspace/TicTacToe /Libs/Android-support-v4.jar» в проекте «TicTacToe» не может быть прочитан или не является допустимым Zip-файлом файл

    Ресурс -> TicTacToe

    Путь Расположение -> Путь сборки 

    Тип -> Проблема пути сборки

Примечание: ошибка была единственной строкой, отображаемой в консоли ошибок в Eclipse. Я просто разделил его для удобства чтения.

Даже после отключения хранилища это показывает эту ошибку.

Кто-нибудь сталкивался с этим сценарием раньше. Какое решение или обходной путь? Я погуглил, и первые несколько ссылок указывают на то, что это ошибка Eclipse. Пожалуйста, предложите, что можно сделать, чтобы вернуть мой проект в исполняемое состояние?

29
Aniket Thakur

Это ошибка Eclipse. Я сталкивался с подобной проблемой несколько раз. закрытие и возобновление проекта работает когда-нибудь. если это не работает, попробуйте перезапустить Eclipse.

49
rachit

Я видел ту же проблему. Я удалил этот jar-файл, а затем щелкнул правой кнопкой мыши по проекту, выбрал maven и сделал «обновить проект ...». Фляга была загружена снова, и проблема исчезла.

22
volatilevar

В другом случае отображается ошибка Архив для необходимой библиотеки

Щелкните правой кнопкой мыши по проекту и откройте -> свойства проекта проекта -> путь сборки Java -> частные библиотеки Android 

если есть два jar-файла с одинаковым именем, удалите один из библиотек. 

jAR-файл может быть скрыт несколько раз, затем откройте папку libs в окне и проверьте, существуют ли скрытые файлы Упорядочить -> папки и параметры поиска -> просмотр -> проверить показ скрытых файлов и удалить скрытый файл jar , тот же самый cass удалить, если скрытые Java-файлы существуют в src и пакетах если есть

10
Sandy09

Похоже, у всех есть разные истории! Мне пришлось удалить ошибку на вкладке Маркеры Eclipse, а затем снова очистить проект. До этого я закрывал и повторно открывал проект/Eclipse несколько раз, как это было предложено @rachit, что не сработало для меня.

6
Mashrur

Может быть из-за поврежденных файлов JAR. Лучше сначала это проверить, так как это было причиной в моем случае:

 jar tf myjar.jar

должен перечислить содержимое внутри.

1
samsamara

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

1
lomec

Я скажу, что, возможно, некоторые ответы работают для некоторых случаев, но мне нужно было пройти лишнюю милю. Поэтому я постараюсь сделать резюме того, что можно сделать:

  1. Убедитесь, что банки не повреждены:

    jar tf myjar.jar

  2. Перезапустите Eclipse и обновите настройки проектов, щелкнув правой кнопкой мыши проект -> Maven -> Обновить проект

  3. Опция, которая работает для меня, состояла в том, чтобы перейти в папку рабочей области и затем удалить файлы:

    .metadata/.plugins/org.Eclipse.jdt.core/invalidArchivesCache .metadata/.plugins/org.Eclipse.jdt.core/nonChainingJarsCache

После этого перезапустите Eclipse и пересоберите проект.

1
duderoot

В моем случае перезапуск Eclipse не решил проблему. Я перезагрузил компьютер и сделал Project -> Clean в Eclipse

1
mboeckle

В моем случае я попробовал все предложенные советы, но ошибка осталась. Я решил изменить версию на более новую и записать ее в pom.xml. После этого все в порядке.

1
enri

я столкнулся с той же проблемой в Eclipse Mars. Я скачал банки с [ https://oss.jfrog.org/webapp/#/artifacts/browse/tree/General/repo/org/ethereum/ethereumj-core/1.0.0-SNAPSHOT][1] и заменил его в каталоге.

Я получил ошибку при добавлении ethereum.jar с использованием pom.xml в C:\Users {machineName} .m2\repository\org\ethereum\ethereumj-core\1.0.0-SNAPSHOT\ethereum-core-1.0.0-SNAPSHOT.jar Я добавил загруженный файл jar (ethereum-core-1.0.0-SNAPSHOT.jar), и проблема была решена.

1
Hem M

Решение, которое сработало для меня: Перейдите к *.classpath и удалите строку: <classpathentry kind="lib" path="the_problematic_class.Java"/>

1
BVtp

Для веб-приложения Java, web.xml добавлен как jar в проект. В Project Explorer попробуйте найти web.xml как значок jar и удалить из проекта. Ошибка уйдет !! 

0
YogiEHunt

В моем случае установка Java не была правильной. Итак, я удаляю Java и переустанавливаю новую версию. Теперь это работает.

0
ChandrasekarG

Я нигде не нашел дубликатов и попытался перезапустить Eclipse, пересобрать проект. Я получал ошибку только для одной библиотеки. Поэтому я просто попытался переименовать файл JAR с ksoap2-Android-Assembly-2.5.8-jar-with-dependencies.jar на ksoap2-2.5.8.jar

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

0
Jimit Patel

Я занимался этой проблемой в течение нескольких дней, несмотря на поиск решения в сети. Сначала я переместил свой проект в Netbeans, и все работало нормально. Затем я вернулся в Eclipse-> properties-> Java compile-> Building и изменил опцию «Несопоставимый путь сборки» с ошибки на предупреждение, а затем сделал maven update, и это сработало.

0
Andy Kofi

Для нас проблема заключалась в размере файла .jar. Я бы порекомендовал сделать следующий тест, чтобы увидеть, так ли это, или, по крайней мере, исключить его. Сначала посмотрите на другие jar-файлы в вашем проекте Eclipse и сравните их с проблемным jar-файлом. Это намного больше, чем другие? Если это так, попробуйте следующий обходной путь. Иначе, этот ответ, вероятно, не поможет вам. Перед запуском настройте Windows для обработки файлов .jar как файлов .Zip с помощью следующей команды командной строки:

assoc .jar=CompressedFolder (см. https://superuser.com/questions/121540/can-you-configure-windows-to-open-jar-files-like-Zip-files-without-a-3rd-party-t )

Необязательно: простой тест

Прежде чем попробовать обходной путь, вот тест, чтобы увидеть, действительно ли вас подстерегает размер файла jar.

  1. Создайте большой .jar, полный случайных .class-файлов, которых нет в вашем проблемном фляге. Вы можете сделать это, сделав папку с файлами, сжав ее и переименовав расширение .Zip в .jar. Windows может предупредить вас об изменении расширения. Проигнорируйте это. Убедитесь, что в папке достаточно файлов, чтобы они были немного больше, чем проблемный фляга.
  2. Попробуйте импортировать эту искусственно созданную банку. Если происходит сбой с той же ошибкой, возможно, проблема в размере.

Обходной путь

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

  1. Распакуйте ваш файл .jar. Вы должны быть в состоянии сделать это легко в Windows
  2. Разделите папку, полученную на шаге 1, на более мелкие подпапки. Это может быть только две папки или более, в зависимости от размера оригинала. Вы хотите, чтобы папки были меньше, чем некоторые из ваших существующих «хороших» банок, чтобы размер не был проблемой. Убедитесь, что структура пакета не повреждена, когда вы делаете это.
  3. Заархивируйте все папки, созданные на шаге 2, и переименуйте .Zip в .jar.
  4. Импортируйте все файлы .jars из шага 3 по отдельности.

Шаги могут быть немного неясными, так что вот пример. Представьте, что ваш файл jar называется mylib.jar. Вы распаковываете это в папку с именем mylib. Внутри, скажем, есть три подпапки с именами package1, package2 и package3. Создайте 3 папки с именами mylib1, mylib2 и mylib3 и поместите в package1, package2 и package3 соответственно. Затем заархивируйте их и переименуйте расширение в .jar. Затем вы будете импортировать mylib1.jar, mylib2.jar и mylib3.jar.

0
Colm Bhandal