简体   繁体   中英

Android Studio 0.8.1 - how to use Facebook SDK?

I tried via import module but I'm always getting

Error:(13, 0) Could not find property 'ANDROID_BUILD_MIN_SDK_VERSION' on project ':facebook'.

I didn't find a tutorial how to use the Facebook SDK with the latest Android Studio...

Using Facebook SDK 3.23 in Android Studio 1.1 preview 2

Two choices :

*Maven Repository for the Facebook SDK.

dependencies {
    compile 'com.facebook.android:facebook-android-sdk:4.7.0'
}

check for the latest version facebook sdk

OR

*Follow the steps below:

1.Download facebook sdk https://developers.facebook.com/docs/android/

2.Unzip the archive facebook-android-sdk-3.23.0

3.File menu->Import Module

4.Chose “facebook” folder inside the unzipped archive.

5.Go to directory facebook/build.gradle change this part

This:

 compileSdkVersion Integer.parseInt(project.ANDROID_BUILD_SDK_VERSION)
    buildToolsVersion project.ANDROID_BUILD_TOOLS_VERSION

    defaultConfig {
        minSdkVersion Integer.parseInt(project.ANDROID_BUILD_MIN_SDK_VERSION)
        targetSdkVersion Integer.parseInt(project.ANDROID_BUILD_TARGET_SDK_VERSION)
    }

To proper sdk version

example:

 compileSdkVersion 21
        buildToolsVersion '21.1.1'

        defaultConfig {
            minSdkVersion 14
            targetSdkVersion 21
        }

6.Click your project and press F4 ,go to 'dependencies' tab, click '+', 'module dependency' and select your imported facebook module.

7.Resync and rebuild

For anybody still wondering, there is finally an official Maven repo for the Facebook SDK:

dependencies {
    compile 'com.facebook.android:facebook-android-sdk:3.20.0'
}

Write all those variables values in "gradle.properties" file.

Like

 ANDROID_BUILD_TARGET_SDK_VERSION=19 ANDROID_BUILD_TOOLS_VERSION=19.1.0 ANDROID_BUILD_SDK_VERSION=19 ANDROID_BUILD_MIN_SDK_VERSION=14 

You can follow this post https://stackoverflow.com/a/20221453/1232520

add these line in your gradle.properties it work for me!

ANDROID_BUILD_TARGET_SDK_VERSION=19
ANDROID_BUILD_TOOLS_VERSION=19.1.0
ANDROID_BUILD_SDK_VERSION=19
ANDROID_BUILD_MIN_SDK_VERSION=14

After do this plese follow step describe in this post https://stackoverflow.com/a/24457464/3296641

Now you can use version 3.21.1 from maven

https://developers.facebook.com/docs/android/

dependencies {
       compile 'com.facebook.android:facebook-android-sdk:3.21.1'
}

您现在可以使用gradle获取Facebook SDK:

compile 'com.facebook.android:facebook-android-sdk:3.20.0'

You can get rid of the

"Error:(13, 0) Could not find property 'ANDROID_BUILD_MIN_SDK_VERSION'"

by replacing all the values like below see your build.gradle . you can find all the properties and the versions your application is using. replace the values of 'buld.gradle file' from facebook sdk with the same versions.

 android {
    compileSdkVersion 19 
    buildToolsVersion "20.0.0"

    defaultConfig {
         minSdkVersion 8
        targetSdkVersion 19
     }

and for BOLT.JAR Error, there is a dependacy in facebook sdk build.gradle file like compile "files('../libs/bolts.jar')" this is actually for the whole sdk folder which we download, but as we use only facebook folder so we have one less directory path to follow. Hence, you can get rean of one period before /libs so just remove it and keep it as compile files ('./libs/bolts.jar')

you are good to go !!

Simply just go to project structure and select dependency 在此输入图像描述

then click + on the right top corner and select library dependency (the first option ) and just type facebook or if you need any other lib and click a search icon (MAKE SURE YOU HAVE INTERNET CONNECTION) and select com.facebook.android:facebook-android-sdk:.... and you are good to go 在此输入图像描述

EXPLINATION:

The following constants can be defined in your project gradle.properties:

ANDROID_BUILD_MIN_SDK_VERSION=15
ANDROID_BUILD_TARGET_SDK_VERSION=21
ANDROID_BUILD_TOOLS_VERSION=21.1.2
ANDROID_BUILD_SDK_VERSION=21

Those are used in the Facebook sdk as build gradle settings. To specify your use of the sdk. (it's encouraged that those values match your project values!).

"Code Reusability and Dependancy!" you can use those same values as gradle build settings in all build.gradle files for your project and all other modules inside your project. use them they same way they are used in the Facebook build.gradle file.

Example Benefit: Changing the minimum sdk version on gradle.properties will automatically change it for all your modules build.gradle.

Add the compile dependency with the latest version of the Facebook SDK in the build.gradle file:

 dependencies { 
      compile 'com.facebook.android:facebook-android-sdk:4.14.0'
    }

For more info https://developers.facebook.com/docs/android/getting-started

For those who do not know where to put gradle.properties , it should go to the root of the project. This is how it looks in one of my projects.

I recently came across an error that was not resolved here yet. I tried to use the latest Facebook SDK from maven (by declaring compile 'com.facebook.android:facebook-android-sdk:4.6.0'). After gradle build I got no error and Android studio's static code analysis was also OK when declaring and writing FacebookSdk related code. However when I tried to run the code in the emulator, I got an error that facebook sdk is not included in the project. Then I tried some other hacks and then I finally removed the facebook entry from the gradle build file and tried to import it as a module, but that also did't work.

After a while when I was reading Facebook gradle file I realized that they are compiling the code with "sourceCompatibility JavaVersion.VERSION_1_7" flag. I used VERSION_1_8 flag because I wanted to use lambda's using retrolambda library. After I switched to 1.7 (and also adjusted the settings in File -> Project structure -> Source Compatibility) it started to work and there were no problems.

I quite don't understand why (and if) is this related together, but it probably is so be aware of that.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM