Несоответствие Jar Обнаружено 2 версии android-support-v4.jar в списке зависимостей

130

Я пытаюсь создать 2 версии приложения для Android (платно / бесплатно). У меня есть библиотека Android, содержащая файлы, общие для обоих. Я создал новый проект Android и пытаюсь использовать библиотеку, но получаю следующую ошибку:

Found 2 versions of android-support-v4.jar in the dependency list,
but not all the versions are identical (check is based on SHA-1 only at this time).
All versions of the libraries must be the same at this time.
Versions found are:
Path: /Users/Zaheer/Developer/App Free/libs/android-support-v4.jar
    Length: 349252
    SHA-1: 612846c9857077a039b533718f72db3bc041d389
Path: /Users/Zaheer/Developer/App Library/libs/android-support-v4.jar
    Length: 337562
    SHA-1: 27c24d26e4c5d57976e6926367985548678e913c

Любые идеи о том, как решить эту проблему? Я безуспешно играл с путём сборки.

Захир
источник
Я нашел очень простое решение, которое работает в таких ситуациях, посмотрите мой ответ ниже
gprathour

Ответы:

177

Любые идеи о том, как решить эту проблему?

Удалить один.

Я безуспешно играл с путём сборки.

Шаг №1: Отмените все это. Если вы ошибаетесь с путем сборки на R16 или более поздней версии плагина ADT для Eclipse, вы делаете это неправильно.

Шаг № 2: Выберите одну из этих двух версий JAR или выберите одну из «дополнительных» области установки SDK.

Шаг № 3: Вставьте правильный JAR App Library.

Шаг № 4: Удалите файл из App Free, так как он заберет этот JAR из App Library.

Вместо этого вы можете иметь один и тот же фактический файл JAR в обоих местах ( App Freeи App Library), хотя это просто занимает дополнительное место без причины.

CommonsWare
источник
1
@Necronet: Пусть все используют один и тот же JAR. Например, скопируйте последнюю версию в каждый из этих проектов.
CommonsWare 01
@CommonsWare: как узнать, какая из них самая последняя?
Mehul Joisar
2
@MehulJoisar: Это зависит от авторов JAR. В случае с android-support-v4.jarпоследней версией будет та, которая установлена ​​в вашем SDK.
CommonsWare
5
@MehulJoisar: Я не могу на это ответить. Обычно я беру последнюю версию android-support-v4.jarиз SDK и копирую ее во все проекты библиотеки (плюс удаляю ее из SDK).
CommonsWare
1
У меня только что возникла эта проблема, но она, казалось, возникла совершенно неожиданно, как и несколько других (более сложных) проблем с Eclipse / Android. Этот ответ устраняет следствие, но, видимо, не причину.
Джо Лапп
24
  1. Удалите android-support-v4.jar из бесплатного приложения
  2. Добавить тот же файл из библиотеки приложений в бесплатное приложение
Ли Чун Хо
источник
@Lee Chun Hoe, ты можешь сказать мне, как перейти по этому пути в MAC OS. Я хочу удалить android-support-v4.jar.
Ракеш
@Rakesh В проводнике пакетов Eclipse разверните проект в папке libs и удалите файл android-support-v4.jar.
Ли Чун Хо
12

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

Перейдите в папку проекта -> libs-> и удалите "android-support-v4.jar"

Надеюсь, это решит вашу проблему, как и мою проблему.

Науман Халид
источник
11

Есть несколько сценариев , где у вас есть несколько проектов библиотек , имеющих те android-support-v4.jarв их libsи строить пути и ваш проект имеет зависимость по отношению к обеим. Скажем, например, в моем случае у меня есть следующие проекты библиотеки в моем рабочем пространстве,

  • libfacebook
  • libsherlockactionbar

Оба эти проекта независимы, и я project.propertiesвыгляжу следующим образом:

# Project target.
target=android-17
android.library.reference.1=../libfacebook
android.library.reference.2=../libsherlockactionbar

Когда я создаю свой проект, у меня возникает проблема несоответствия jar, имеющая повторяющиеся ссылки на две копии одного и того же файла. То, что я сделал, чтобы решить эту проблему, было хитростью. Я создал новый проект библиотеки, названный libcommonsродительским для всех других проектов библиотеки в моей рабочей области, включая libfacebookи libsherlockactionbar. Затем я удалил библиотеку поддержки со стороны всех других проектов и хранится только одна копия внутри libcommons«сек ЛИЭС папку. Затем я добавил libcommonsв качестве ссылки на все мои другие библиотечные проекты. После того, как я почистил мое рабочее место, все работает как шарм.

Субин Себастьян
источник
8

Это более элегантное решение, чем удаление и добавление файлов!

Вам просто необходимо:

  1. Щелкните правой кнопкой мыши приложение проекта бесплатно
  2. Перейдите в «Инструменты Android»> «Добавить библиотеку поддержки».
  3. Утвердите разрешения и дайте ему обновить библиотеку
  4. Повторите этот процесс для библиотеки приложений проекта.

Библиотека поддержки Android будет синхронизирована (:

cokeby190
источник
Спасибо - это решило мою проблему. Мне пришлось добавить BaseGameUtils, и я получил эту ошибку :)
neowhoru
@neowhoru, без проблем! Рад поделиться! ~
cokeby190
1
рад, что помог @MuhammedRefaat! (:
cokeby190
7

ОЧЕНЬ ПРОСТОЕ РЕШЕНИЕ

В моем случае сработало очень простое решение, просто скопируйте один и тот же файл jar (android-support-v4.jar) во все проекты. Больше не будет конфликта.

1 Скопируйте файл jar android-support-v4.jar из папки libs любого проекта.

2 Удалите файл jar android-support-v4.jar из папки libs второго проекта, которая уже существует.

3 Вставьте недавно скопированный файл jar первого проекта в папку libs второго проекта.

Теперь проблема несоответствия банок будет решена.

gprathour
источник
5

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

Рафаэль Санчес
источник
4

Разрешение:

  1. Щелкните правой кнопкой мыши «бесплатный» проект> Инструменты Android> Добавить библиотеку поддержки.
  2. Сделайте то же самое с «платным» проектом.
  3. Очистить все проекты
strawberrywine
источник
2

Проверьте, открыты ли для вас нерелевантные проекты, потому что так было со мной, казалось, что один из файлов JAR был связан с другим проектом, с которым я не работал, поэтому я просто закрыл этот проект, выполнил чистую сборка проекта, над которым я работаю, и проблемы больше не было! Надеюсь, это поможет кому-то!

Артурас М
источник
1

Используйте ту же банку при добавлении внешних банок в библиотеку и проект

Pratik Kanade
источник
1

ну .. у меня работает:

Перейти к

Папка проекта> библиотеки

затем удалите "android-support-v4.jar"

затем

проект> Чистый

Это сработает!

Эрик Герреро
источник
1

У меня только что возникла эта проблема, но вместо удаления конфликтующего android-support-v4.jar я просто переименовал его в android-support-v4_PROJECT.jar , что устранило конфликт.

Если вам интересно, как переименовать файл в Eclipse, вам просто нужно выделить файл и нажать F2.

eBehbahani
источник
0

Вам просто нужно иметь одинаковую контрольную сумму android-support-v4.jar для каждого из ваших проектов. Для этого вы можете скопировать / вставить один из них во все ваши конфликтующие проекты / библиотеки.

Больше нечего делать, убирай и наслаждайся :)

Tryp
источник
0

Возможно, вы откроете два проекта одновременно (оба с помощью android-support-v4.jar). I close 1 project and every thing ok

Серый волк
источник