2014-02-21 1 views
0

Мой проект зависит от двух библиотек: один - ActionBarSherlock, а другой - Facebook SDK.Как включить библиотеки, которые зависят от одной и той же библиотеки?

Оба этих проекта библиотеки зависят от android-support-library.

Проблема теперь, если я включаю эту библиотеку в обеих проектах библиотеки, I'm получаю эту ошибку сборки

Android Dex: [MyApp] Unable to execute DX 
Android Dex: [MyApp] com.android.dex.DexException: Multiple dex files define Landroid/support/v4/view/PagerAdapter; 

Как я могу управлять, чтобы оба библиотек зависят от одной и той же библиотеки?

+0

Вы имеете в виду, что вы меняете путь сборки java? – Blackbelt

+0

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

+0

Я столкнулся с той же ситуацией месяц назад для V7_support lib и Facebook. Что я сделал - я удалил v4 из facebook и добавил v7 в качестве библиотеки в facebook. Это решило мою проблему. Надеюсь, что это поможет вам. –

ответ

1

Эта ошибка обычно появляется, когда у вас есть две разные версии файла jar в приложении. Просто включите ту же самую банку в обе библиотеки, и банка будет включена только один раз в APK.

+0

это не работало для меня, все та же ошибка –

+0

Как вы проверяли, что они были той же самой версией? –

+0

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

0

включают в ActionBarSherlock Пб android support library, а затем включить ActionBarSherlock библиотеку в Facebook библиотеке, и, наконец, включают Facebook библиотеку в вашем project.

НАКОНЕЦ: Очистите ваш проект

+0

Я думаю, что вложенные библиотеки не лучшее решение. Я решил это, добавив ту же самую библиотеку поддержки ко всем библиотекам и основному проекту. в любом случае, спасибо –

0
1. Right click on the Project Name 
2. Select Build Path -> Configure Build Path 
3. In Java Build Path, go to the tab Order and Export 

4. Unchecked your .jar library 

надеюсь, что это вам поможет .... :)

1

Чтобы преодолеть это решение проблемы есть вы должны иметь ту же библиотеку поддержки в вашей всей библиотеке и главный проект для этого вам нужно выбрать каждый проект и добавить поддержку LIB как ниже

Щелчок правой кнопкой мыши проект Android инструменты Добавить поддержку библиотеки

Repit для всех проектов!

0

Ну, у меня была та же проблема. Я решил это, выполнив это: 1- перейдите в каталог libs вашего проекта. Был бы jar-файл поддержки библиотеки Android, который будет от Google. Удалите эту банку. 2- Скопируйте банку библиотеки поддержки Android из директории libc Facebook. 3- Вставьте эту банку в каталог libs в своем проекте (то же место, где вы удалили банку, предоставленную Google на шаге 1). 4- Теперь щелкните правой кнопкой мыши на этой банке. Выберите «Путь сборки». Выберите «Добавить в путь сборки»

Все готово. Теперь у вас есть тот же JAR-файл, который предоставляется в пакете Facebook в любом месте.

Примечание: копирование в обратном порядке, то есть копирование предоставленного Google флага для поддержки в SDK для Facebook не сработало для меня. Он не смог получить LocalBroadcastManager. Я не знаю почему.

Смежные вопросы