6

根据文章Add facebook SDK to IntelliJ Android project? ,我选择将“ facebook.jar ”文件作为模块添加到项目结构的“ Dependencies ”部分中。编译过程工作正常。但是,当我尝试使用“会话登录”登录 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

4 回答 4

26

OK, finally got the facebook android SDK worked for me. Here are the order of steps I did.

  1. Open up and be in your current android project then select File | New Module
  2. Choose "Library Module" on the left-side panel.
  3. Fill in the required information on the right-side panel. Here I just given the:
    • Module name: "facebook"
    • Content root: Choose where the downloaded facebook android SDK is, and be sure to select the subfolder named "facebook"
      select facebook subfolder

    • Module file location: same as Content root
      New Module Window in IntelliJ IDEA 12
    • Package name: com.facebook.android (Guess could assign arbitrarily?)
  4. Click finish button and wowla~ you got the facebook android sdk module in your project.
  5. Go to File | Project Structure then select the Modules pages at the left panel
    enter image description here
  6. Select your original android project, Click Plus(Add) button to add a new Module Dependency, you will see the facebook module we created above just shown for selection. Select it.
  7. Click the apply, OK button. Then you got the facebook android SDK worked flawlessly in you android application. Congrats!!
于 2013-02-06T15:40:57.720 回答
0

我有同样的问题,但我正在使用 eclipse,所以我使用 eclipse 解决这个问题的步骤:

将 facebook sdk 导入工作区后的 1-in eclipse 右键单击​​ FacebookSDk 库,然后选择属性或按 Alt + 输入 2 - 从 Leth 选择“Java 构建路径”,然后转到“库”选项卡

在此处输入图像描述


3-单击“添加外部jar”然后转到facebook sdk路径或位置选择libs文件夹添加android-support-v4文件和bolts文件
现在你完成了你很高兴


我希望这能停止

于 2014-05-14T00:43:14.703 回答
0

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。取消选中另一个(库?)。Namebolts..OK
  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

于 2014-10-25T17:58:45.783 回答
-1

一种更简单的方法是将 Facebook SDK 作为 AAR 库导入 Android 应用的 Gradle 构建中。为此,我建议不要重新发明轮子,而是使用 facebook-api-android-aar 项目(请参阅https://github.com/mente/facebook-api-android-aar)。正如该项目的文档(在 README.md 文件中)中所解释的,简单的方法是使用 Facebook SDK 的预构建 Maven 工件,方法是在应用程序的 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
} 

而已。请注意,此工具支持 Facebook SDK 的 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 版本。

再见

于 2014-07-31T13:15:03.520 回答