在Android Studio 0.4.2中使用Facebook SDK

Jos*_*ita 11 facebook-android-sdk android-studio

我正在尝试创建一个使用Facebook SDK的新Android应用程序,我正在使用最新版本的所有东西,所以我使用Android Studio 0.4.0和新的Gradle编译系统以及从下载的SDK的最新版本Facebook的.

我试图按照Facebook开发者页面中的说明操作:https: //developers.facebook.com/docs/getting-started/facebook-sdk-for-android-using-android-studio/3.0/但 没有运气,因为说明不适用于基于Gradle的Android Studio.

我也尝试按照Scott Barta在android工作室中使用facebook sdk的说明但没有运气,当"与Gradle文件同步项目"不起作用的第7步时,我收到此错误:

无法刷新Gradle项目.您正在使用旧的,不受支持的Gradle版本.请使用1.9或更高版本.请在项目的Gradle设置或项目的Gradle包装器中指向支持的Gradle版本(如果适用).

我试图修改build.gradle文件并更改类路径行:

classpath 'com.android.tools.build:gradle:0.6.+'
Run Code Online (Sandbox Code Playgroud)

至:

classpath 'com.android.tools.build:gradle:0.7.+'
Run Code Online (Sandbox Code Playgroud)

并且还将compileSdkVersion,buildToolsVersion,minSdkVersion和targetSdkVersion更改为我项目中的值,但不起作用.

谁能帮我?谢谢!

编辑:我今天更新到Android 0.4.2,但新版本没有运气.

我的gradle-wrapper.properties文件正在使用Gradle 1.9:

#Wed Apr 10 15:27:10 PDT 2013
 distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=http\://services.gradle.org/distributions/gradle-1.9-all.zip
Run Code Online (Sandbox Code Playgroud)

这是我用来编译Facebook库的build.gradle文件:

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.7.+'
    }
}

apply plugin: 'android-library'

dependencies {
    compile 'com.android.support:support-v4:+'
}

android {
    compileSdkVersion 19
    buildToolsVersion "19.0.1"

    defaultConfig {
        minSdkVersion 7
        targetSdkVersion 19
    }

    sourceSets {
        main {
            manifest.srcFile 'AndroidManifest.xml'
            java.srcDirs = ['src']
            resources.srcDirs = ['src']
            res.srcDirs = ['res']
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这是我用于我的应用程序的完整build.gradle:

apply plugin: 'android'

android {
    compileSdkVersion 19
    buildToolsVersion "19.0.1"

    defaultConfig {
        minSdkVersion 7
        targetSdkVersion 19
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            runProguard false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
        }
    }
}

dependencies {
    compile 'com.android.support:appcompat-v7:+'
    compile project(':libraries:facebook')
}
Run Code Online (Sandbox Code Playgroud)

现在,当我点击带有Gradle文件的同步项目时,我收到以下错误:

Gradle 'Testing' project refresh failed:
Project with path ':libraries:facebook' could not be found in project ':app'.
Run Code Online (Sandbox Code Playgroud)

我试图改变路径使用:"libraries:facebook","app:libraries:facebook",":app:libraries:facebook"......但我总是遇到同样的错误.

编辑解决方案:

使用Android 0.4.2和最新版本的Facebook SDK非常简单,Facebook SDK包含一个有效的build.gradle文件,只需按照以下步骤操作:

  • 创建一个名为"libs"的文件夹(重要的是,不要使用其他名称!!!如果使用"lib"可能无效),在项目的顶部(重要的是,不要在子文件夹中创建!).

  • 将facebook文件夹从下载的SDK复制到刚刚创建的libs文件夹中.

  • 将此行包含在settings.gradle的顶部:

    包括':libs:facebook'

  • 在build.gradle文件的底部,在依赖项组中包含此行:

    编译项目(':libs:facebook')

只需单击"使用Gradle文件同步项目",重建项目即可使用!

编辑ANDROID STUDIO> 0.5.2:

好吧,从Android Studio版本0.5.2开始,当创建一个新项目时,会在项目中创建一个"libs"文件夹,所以我认为使用该文件夹更好,所以这些步骤如下:

  • 将facebook文件夹从下载的SDK复制到libs文件夹:YourProjectName/yourProjectName/libs

  • 将此行包含在settings.gradle的顶部:

    包括':libs:facebook'

  • 在build.gradle文件的底部,在依赖项组中包含此行:

    编译项目(':yourProjectName:libs:facebook')

只需单击"使用Gradle文件同步项目",重建项目即可使用!

Dim*_*ian 7

要添加到其他答案,请将该行添加 include ':libraries:facebook'到settings.gradle中,您将收到新错误

Gradle 'Android' project refresh failed: Configuration with name 'default' not found.
Run Code Online (Sandbox Code Playgroud)

但是,这就是我们所说的进步.

EDI:

好的,现在它正在工作,这正是我所做的. - 我从一开始就把FB SDK放在错误的路径上,我创建了一个与我的应用程序处于同一级别的库文件夹,你不应该,它不会工作. - 由于Android Studio 0.4.+文件夹名称应该是libs而不是库

在项目的根目录下创建文件夹libs(找到settings.gradle的地方)

从libs文件夹中的Facebook SDK复制Facebook文件夹

在您的主应用程序包含之前settings.gradle添加include ':libs:Facebook'

在主应用程序的build.gradle中,在依赖项中添加此行

compile project(':libs:facebook')
Run Code Online (Sandbox Code Playgroud)

确保Android Support V4也是您的依赖项之一,即:

compile 'com.android.support:support-v4:18.0.0'
Run Code Online (Sandbox Code Playgroud)

这里还有我的Facebook库的build.gradle

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.7.1'
    }
}

apply plugin: 'android-library'

dependencies {
    compile 'com.android.support:support-v4:+'
}

android {
    compileSdkVersion 19
    buildToolsVersion "19.0.0"

    defaultConfig {
        minSdkVersion 15
        targetSdkVersion 19
    }

    sourceSets {
        main {
            manifest.srcFile 'AndroidManifest.xml'
            java.srcDirs = ['src']
            resources.srcDirs = ['src']
            res.srcDirs = ['res']
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

现在同步gradle,一切都应该正常,我在Android Studio 0.4.2 + Facebook SDK 3.6.0