问题
According to the article Add facebook SDK to IntelliJ Android project?, I choose to add the "facebook.jar" file as a Module in the "Dependencies" section in the project structure. The compile process works fine. However, when I trying to using "Session Login" to login in facebook, I got the runtime error message like this:
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)
It looks like the facebook.jar doesn't contain the layout resource itself provided in facebook sdk? Don't know if I am right or wrong. I do import the current project and build and run my app via eclipse, and it work like a charm. Everything works flawlessly. However, being a IntelliJ IDEA favorer, I would like to seek if anyone could provide solution for this issue. Many thanks.
回答1:
OK, finally got the facebook android SDK worked for me. Here are the order of steps I did.
- Open up and be in your current android project then select
File
|New Module
- Choose "
Library Module
" on the left-side panel. - 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"Module file location
: same as Content rootPackage name
: com.facebook.android (Guess could assign arbitrarily?)
- Click
finish
button and wowla~ you got the facebook android sdk module in your project. - Go to
File
|Project Structure
then select theModules
pages at the left panel - 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. - Click the apply, OK button. Then you got the facebook android SDK worked flawlessly in you android application. Congrats!!
回答2:
i had same problem but i'm using eclipse so my steps to solve this problem using eclipse :
1-in eclipse after you import facebook sdk to your workspace right click on FacebookSDk library then chose properties or press Alt + enter 2 - chose "java build path" from leth then go to Libraries Tab

3- click "add external jars" then go to facebook sdk path or location chose libs folder add android-support-v4 file and bolts file
now you done you are happy
i hope this halps
回答3:
Cloud's solution didn't work for me so I'll post mine below. Specifically, mine didn't work because I was already using the appcompat support library, so this will be especially useful in this case.
ONLY DO THE HIGHLIGHTED STEPS IF YOU ARE ALREADY USING THE APPCOMPAT SUPPORT LIBRARY.
- Click
File
->Project Structure
->Modules
. Click thegreen +
->Import module
. Select thefacebook
folder from thefacebook SDK
and clickOK
. - Select
Create module from existing sources
->Next
->Next
.
- Click
split (the pink/blue button at the top)
. TypeFacebookDependencies
inName
-> selectbolts..
->OK
. Uncheck the other one (libs?).
- Click
Next
->Next
->Finish
.
Click the
green +
on the right ->2. Library
-> (the library that contains your android-support-v4.jar - you can check in theLibraries
page on the left) ->Add Selected
.Click the
green +
on the right ->3. Module Dependency
->appcompat
->OK
.
Click
your module
.Click the
green +
on the right ->2. Library
->FacebookDependencies
(or whatever name it had previously in step 3) ->Add Selected
.Click the
green +
on the right ->3. Module Dependency
->facebook
->OK
.
回答4:
A much simpler approach is to import the Facebook SDK as an AAR library in your Android app's Gradle build. For doing so, I suggest not to reinvent the wheel and use the facebook-api-android-aar project (see https://github.com/mente/facebook-api-android-aar) instead. As explained on this project's documentation (in the README.md file) the simple way is to use a pre-built Maven artifact of the Facebook SDK, by adding the following code in your application's build.gradle file:
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
}
That's it. Note that this tool support version 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 of the Facebook SDK.
Ciao
来源:https://stackoverflow.com/questions/14729026/seem-doesnt-get-facebook-sdk-resource-when-using-facebook-android-sdk-in-intell