Кажется, не получает ресурс Facebook SDK при использовании Facebook Android SDK в IntelliJ IDEA 12

Согласно статье Добавить Facebook SDK в проект IntelliJ Android? Я решил добавить файл "facebook.jar" в качестве модуля в разделе "Зависимости" в структуре проекта. Процесс компиляции работает нормально. Однако, когда я пытался использовать "Вход в сеанс" для входа в Facebook, я получил сообщение об ошибке во время выполнения, например:

02-06 20:15:56.648: ERROR/AndroidRuntime(5891): FATAL EXCEPTION: main
    java.lang.NoClassDefFoundError: com.facebook.android.R$layout
    at com.facebook.LoginActivity.onCreate(LoginActivity.java:55)
    at android.app.Activity.performCreate(Activity.java:4524)
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1071)
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2115)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2189)
    at android.app.ActivityThread.access$600(ActivityThread.java:139)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1261)
    at android.os.Handler.dispatchMessage(Handler.java:99)
    at android.os.Looper.loop(Looper.java:154)
    at android.app.ActivityThread.main(ActivityThread.java:4894)
    at java.lang.reflect.Method.invokeNative(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:511)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
    at dalvik.system.NativeStart.main(Native Method)

Похоже, что facebook.jar не содержит сам ресурс макета, предоставленный в Facebook SDK? Не знаю, прав я или нет. Я импортирую текущий проект, собираю и запускаю свое приложение через eclipse, и оно работает как шарм. Все работает без нареканий. Тем не менее, будучи сторонником IntelliJ IDEA, я хотел бы попытаться найти решение этой проблемы. Большое спасибо.

4 ответа

Решение

ОК, наконец-то получил SDK для Android на Facebook. Вот порядок шагов, которые я сделал.

  1. Откройте и будьте в вашем текущем проекте Android, затем выберите File | New Module
  2. Выберите "Library Module"на левой боковой панели.
  3. Заполните необходимую информацию на правой боковой панели. Здесь я только что дал:
    • Module name: "facebook"
    • Content root: Выберите, где находится загруженный Android SDK для Facebook, и обязательно выберите подпапку с именем "Facebook".
      выберите подпапку facebook

    • Module file location: то же самое, что и root
      Новое окно модуля в IntelliJ IDEA 12
    • Package name: com.facebook.android (догадаешьсяназначить произвольно?)
  4. Нажмите finish кнопка и вау ~ вы получили модуль Android SDK facebook в вашем проекте.
  5. Идти к File | Project Structure затем выберите Modules страницы на левой панели
  6. Выберите свой оригинальный проект Android, нажмите кнопку "Плюс" (Добавить), чтобы добавить новый Module Dependency, вы увидите модуль Facebook, который мы создали выше, только что показанный для выбора. Выберите это.
  7. Нажмите кнопку Применить, ОК. Тогда вы получили Android SDK Facebook работал безупречно в вашем приложении для Android. Congrats!!

У меня была та же проблема, но я использую Eclipse, поэтому мои шаги для решения этой проблемы с помощью Eclipse:

1-во затмении после того, как вы импортируете FacebookSDK в свою рабочую область, щелкните правой кнопкой мыши библиотеку FacebookSDk, затем выберите свойства или нажмите Alt + ввод 2 - выберите "путь сборки Java" из окна "Лето" и перейдите на вкладку "Библиотеки".




3- нажмите "добавить внешние баночки", затем перейдите на Facebook путь SDK или местоположение, выберите папку libs, добавьте файл android-support-v4 и файл болтов
теперь вы сделали, вы счастливы


я надеюсь, что это произойдет

Решение Cloud не подействовало на меня, поэтому я опубликую свое ниже. В частности, мой не работал, потому что я уже использовал библиотеку поддержки appcompat, так что это будет особенно полезно в этом случае.

Делайте только выделенные шаги, если вы уже используете библиотеку поддержки APPCOMPAT.

  1. Нажмите File -> Project Structure -> Modules, Нажмите на green + -> Import module, Выберите facebook папка из facebook SDK и нажмите OK,
  2. Выбрать Create module from existing sources -> Next -> Next,
  1. Нажмите split (the pink/blue button at the top), Тип FacebookDependencies в Name -> выбрать bolts.. -> OK, Снимите флажок с другого (libs?).
  1. Нажмите Next -> Next -> Finish,
  1. Нажмите на green + справа -> 2. Library -> (библиотека, которая содержит ваш android-support-v4.jar - вы можете проверить в Libraries страница слева) -> Add Selected,

  2. Нажмите на green + справа -> 3. Module Dependency -> appcompat -> OK,

  1. Нажмите your module,

  2. Нажмите на green + справа -> 2. Library -> FacebookDependencies (или как оно было ранее на шаге 3) -> Add Selected,

  3. Нажмите на green + справа -> 3. Module Dependency -> facebook -> OK,

Гораздо более простой подход - импортировать Facebook SDK в виде библиотеки AAR в сборке вашего Android-приложения Gradle. Для этого я предлагаю не изобретать велосипед и использовать проект facebook-api-android-aar (см. https://github.com/mente/facebook-api-android-aar). Как объяснено в документации этого проекта (в файле README.md), простой способ - использовать предварительно созданный артефакт Maven из SDK Facebook, добавив следующий код в файл build.gradle вашего приложения:

buildscript {
    repositories {
        mavenCentral()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:+'
    }
}

repositories {
    mavenCentral()
    mavenLocal()
    maven {
        url "http://mente.github.io/facebook-api-android-aar"
    }
}

apply plugin: 'android'
dependencies {
    compile ('com.facebook:facebook-android-sdk:+@aar') {
        transitive = true
    }

    // other dependecies definition here
}

android {
   //android build setup
} 

Вот и все. Обратите внимание, что этот инструмент поддерживает версии 3.0.2, 3.5.0, 3.5.2, 3.6.0, 3.7.0, 3.8.0, 3.14.1, 3.15.0, 3.16 из Facebook SDK.

Чао

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