java.lang.NoClassDefFoundError: com.facebook.android.Facebook

Я продолжаю получать сообщение об ошибке java.lang.NoClassDefFoundError: com.facebook.android.Facebook при запуске моего приложения.

Это происходит при звонке:

facebook = новый Facebook(APP_ID);

Дополнительное сообщение об ошибке:

Не удалось найти класс com.facebook.android.Facebook, на который ссылается метод com.example.example1.ShareOnFacebook.onCreate

Я добавил.jar файл facebook через библиотеки со ссылками в Eclipse.

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

5 ответов

Решение

Просто зайдите в Project / Properties / Java Build Path / Order and Export и установите флажок jar. Это установит jar как "экспортированный". Вы можете проверить это в файле.classparh: classpathentry exported="true" kind="lib" path="/my-jars/facebook-android-sdk-1.2.1.jar"

Не забудьте очистить свой проект после этого (Project / Clean...)

Я слышал, что в последней версии ADT вам нужно называть вашу библиотечную папку "libs", а не "lib". Но это не сработало для меня.

Поэтому вместо этого мне пришлось прибегнуть к перемещению файла JAR в папку "assets". Это решило мою проблему.

Полностью отсталый, если вы спросите меня.

Я также продолжаю получать эту проблему, "Проекты библиотек" (которые должны содержать com_facebook_android.jar) вообще не отражаются в "Проводнике пакетов". Но это легко решаемо.
Щелкните правой кнопкой мыши проект> Свойства>Android> Библиотека -> удалить добавленный проект библиотеки Facebook -> применить. Затем снова добавьте проект библиотеки Facebook и нажмите "Применить". На этот раз "Библиотечные проекты" появятся в вашем Package Explorer справа.

Вы недавно обновили свой ADT или Android SDK? Попробуйте удалить ссылку на библиотеку Facebook или флягу Facebook и повторно добавить ее.

Они изменили способ обработки ссылок на внешние библиотеки в последних обновлениях ADT, и это отбросило тонну моих проектов. Удаление ссылок и их повторное добавление, похоже, помогает.

Решение, которое работало для меня: файл android-support-v4.jar внутри моего проекта отличался от версии внутри проекта Facebook. Поэтому я скопировал библиотеку поддержки Facebook в папку libs моего проекта, и это сработало как шарм.

Другие вопросы по тегам