【问题标题】:Using Facebook SDK in Android Studio 0.4.2在 Android Studio 0.4.2 中使用 Facebook SDK
【发布时间】:2014-01-13 22:32:29
【问题描述】:

我正在尝试创建一个使用 Facebook SDK 的新 Android 应用程序,我对所有内容都使用最新版本,因此我正在使用带有新 Gradle 编译系统和最新版本的 Android Studio 0.4.0从 Facebook 下载的 SDK。

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

我也尝试按照 Scott Barta 在using facebook sdk in android studio 中的说明进行操作,但没有运气,当“使用 Gradle 文件同步项目”时第 7 步不起作用,我收到此错误:

未能刷新 Gradle 项目。您使用的是旧的、不受支持的 Gradle 版本。请使用 1.9 或更高版本。请在项目的 Gradle 设置或项目的 Gradle 包装器(如果适用)中指向受支持的 Gradle 版本。

我尝试修改 build.gradle 文件并将类路径行从:

classpath 'com.android.tools.build:gradle:0.6.+'

到:

classpath 'com.android.tools.build:gradle:0.7.+'

还将 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

这是我用来编译 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']
        }
    }
}

这是我用于我的应用程序的完整 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')
}

现在,当我单击 Sync Project with Gradle Files 时,我收到以下错误:

Gradle 'Testing' project refresh failed:
Project with path ':libraries:facebook' could not be found in project ':app'.

我尝试使用以下方法更改路径:“libraries:facebook”、“app:libraries:facebook”、“:app:libraries:facebook”...但我总是遇到同样的错误。

使用解决方案编辑:

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

  • 顶部 (也很重要,不要在子文件夹中创建!!!)。

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

  • 在您的 settings.gradle 顶部包含这一行:

    包括':libs:facebook'

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

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

只需点击“Sync Project with Gradle files”,重建项目,它应该可以工作了!

为 ANDROID STUDIO 编辑 > 0.5.2:

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

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

  • 在您的 settings.gradle 顶部包含这一行:

    包括':libs:facebook'

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

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

只需点击“Sync Project with Gradle files”,重建项目,它应该可以工作了!

【问题讨论】:

    标签: android-studio facebook-android-sdk


    【解决方案1】:

    要添加到其他答案,请添加该行 include ':libraries:facebook' 到你的 settings.gradle ,你会得到一个新的错误

    Gradle 'Android' project refresh failed: Configuration with name 'default' not found.
    

    但这就是我们所说的进步。

    EDI:

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

    在项目的根目录(与您找到 settings.gradle 的位置相同)创建一个文件夹 libs

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

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

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

    compile project(':libs:facebook')
    

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

    compile 'com.android.support:support-v4:18.0.0'
    

    这也是我的 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']
            }
        }
    }
    

    现在同步 gradle,一切正常,我使用的是 Android Studio 0.4.2 + Facebook SDK 3.6.0

    【讨论】:

    • 有一个错字:include ':libs:Facebook' 应该是include ':libs:facebook'。所以不会让我编辑它,因为那只是一个字符。
    • 可以将 Facebook SDK 包含为 Gradle 依赖项,请查看此答案:stackoverflow.com/a/23746667/1891118
    【解决方案2】:

    使用 Gradle 插件的 v0.7.+,就像您已经完成的那样,并且您要确保您使用的是 Gradle 的 v1.9(不是 1.10,这是不兼容的)。如果您的项目使用 Gradle 包装器(这是我推荐的),您可以检查嵌入在 gradle/wrapper/gradle-wrapper.properties 文件中 distributionUrl 参数中的 Gradle 版本。

    如果您升级到 Android Studio 0.4.2,它应该会在您打开项目时检查版本,并告诉您如何纠正存在的问题。

    编辑

    解决您的问题

    Build script error, unsupported Gradle DSL method found: 'include()'!
    

    您需要更正您的依赖关系。要包含另一个模块作为依赖项,请使用:

    compile project(':libraries:facebook')
    

    如果您通过项目结构对话框而不是手动编辑 build.gradle 文件,它可以为您正确完成(尽管它不会修复使用 @987654324 的错误语句@)。

    【讨论】:

    • 首先,非常感谢您的帮助。这是我的 gradle-wrapper.properties 文件: 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 似乎我正在使用 Gradle 1.9。在 build.gradle 中,我使用的是 0.7.+: buildscript { repositories { mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:0.7.+' } } 而且我遇到了同样的错误:(
    • 请更新您的问题并在此处添加有关您的构建文件的详细信息。由于所有格式都丢失了,因此很难在评论中阅读。
    • 再次感谢,我已经更新了我的主要问题,我得到了其他不同的错误:(
    • 我也尝试过使用项目结构对话框,但是我无法添加facebook库,就像不被识别为库一样。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多