在Android Studio 0.5.1上导入Facebook SDK

8

我已经搜索了一段时间,并尝试了所有的答案,但都没有成功。我开始相信问题出在安卓工作室的版本上。

以下是我所做的:

1 - 我已经下载了Facebook SDK

2 - 将SDK复制到我的libs文件夹中,使项目看起来像下面这样:

 MyProj
 -app
 --libs
 ---facebook
 ----build.gradle (2)
 --build.gradle (1)
 -settings.gradle

3 - 我修改了settings.gradle:

include ':libs:facebook', ':app'

4 - 我修改了build.gradle (1):

apply plugin: 'android'

android {
    compileSdkVersion 19
    buildToolsVersion "19.0.3"

    defaultConfig {
        minSdkVersion 16
        targetSdkVersion 19
        versionCode 1
        versionName "1.0"
    }


    buildTypes {
        release {
            runProguard false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'me.dm7.barcodescanner:zxing:1.0'
    compile 'com.koushikdutta.ion:ion:1.2.4'
    compile 'com.google.code.gson:gson:2.2.+'
    compile 'com.squareup.picasso:picasso:2.1.1'
    compile project(':libs:facebook');
}

5 - 最后编辑的 build.gradle 文件(2):

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

apply plugin: 'android-library'

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

android {
    compileSdkVersion 19
    buildToolsVersion "19.0.3"

    defaultConfig {
        minSdkVersion 16
        targetSdkVersion 19
    }

    sourceSets {
        main {
            manifest.srcFile 'AndroidManifest.xml'
            java.srcDirs = ['src']
            resources.srcDirs = ['src']
            res.srcDirs = ['res']
        }
    }
}

在同步时,我经常遇到以下烦人的警告:

Gradle 'MyApp' 项目刷新失败: 没有找到名称为“default”的配置

由此我无法使用Facebook库。

我猜测是我的Gradle文件操作有误,请问有何建议?


我认为这取决于你使用的Facebook SDK版本。我下载的那个已经有了一个不同的Gradle文件。我用的那个是在StackOverflow上找到的,虽然我记不清具体在哪里了。但对我来说它起作用了。 - Furedal
4个回答

24
在使用 Android Studio 0.5.8 的 Mac 上,以下是我的解决方法:
  1. 点击顶层项目并选择项目结构: Step 1

  2. 点击“+”添加另一个模块 Step 2

  3. 点击“导入现有项目”和“下一步” Step 3

  4. 从 SDK 文件夹中选择 facebook 目录并单击下一步 Step 4

  5. 现在应该显示 Facebook 模块以及现有模块 Step 5

  6. 点击您的项目,选择依赖项选项卡,然后单击“+”以添加依赖项。 Step 6

  7. 选择 "模块依赖项" 作为依赖项类型。 Step 7

  8. 选择我们刚刚添加的 Facebook 模块 Step 8

  9. 注意它显示在应用程序的依赖关系下 Step 9

至此,您已经完成了所有设置!


这对我来说很不幸不起作用 :( 在第5步,当我选择Facebook文件夹时,什么都没有发生,它仍然显示“选择要导入的模块”。当我选择父文件夹(facebook-android-sdk-3.14)时,它给我所有要导入的模块。然后我选择“Facebook”模块,点击完成,但是我只得到了一个Gradle同步,该模块不会出现在任何地方... 我这里也使用0.5.8版本,你有任何关于我做错了什么的想法吗? - Thermometer
太棒了!解决了我们的问题。谢谢! - NRR
也不要忘记将 bolts.jas 添加到你的库中! - Nagaraj Alagusundaram
这是最佳解决方案。 - Markel Mairs

14
你的项目目录结构与你使用的依赖规范不匹配;你的settings.gradle中有什么并不清楚。当Gradle在特定目录中找不到模块时,你会收到“配置名称'default'未找到”的错误消息,这个错误信息非常晦涩难懂。如果包含依赖规范(和settings.gradle)如下::libs:facebook,它将在MyProj/libs/facebook而不是你放置它的MyProj/app/libs/facebook中查找。
我建议采用以下结构:
MyProj
 -app
 --build.gradle (1)
 -libs
 --facebook
 ---build.gradle (2)
 -settings.gradle

即将libs目录移动到与app目录相邻的层级,而非其之下。

你的settings.gradle文件应为:

include ':app', ':libs:facebook'

(这可能是您已经设置的方式),对于 Facebook 的依赖关系应该如下所示:

compile project(':libs:facebook')

(我也喜欢你已经设置好的方式)


谢谢,这个方法非常有效!只是想澄清一下,如果我保留原来的结构,那么我应该添加compile project(':app:libs:facebook')吗? - Furedal
是的,你在 settings.gradle 中的 include 也需要像这样。 - Scott Barta
可以将Facebook SDK作为Gradle依赖项包含在内,请查看此答案:https://dev59.com/W2Ij5IYBdhLWcg3wuHTP#23746667 - Oleksii K.
如果Facebook应该与应用程序处于同一级别,为什么它是":libs:facebook"而不是":facebook"?我按照这些说明操作,但Android Studio抱怨无法在同一级别的另一个Facebook示例“ProfilePictureSample”中找到Facebook。有什么建议吗? - HukeLau_DABA
我的文本是正确的,但我的ASCII艺术目录结构是错误的。我已经修复了它。 - Scott Barta

5

按照以下步骤将Facebook SDK添加到您的Android项目中。

1) Open your fresh Android project 
2) Go to File -> Project Structure (or) Alt+Ctrl+Shift+S
3) Go to module click + on second row of window then import module
4) After Facebook SDK imported click + on third row and select Module Dependency select Facebook SDK Apply and press ok 

似乎在Android Studio 0.5.1上无法工作。没有导入模块。不过,第一个答案对我有用!无论如何,谢谢。 - Furedal
点击“导入现有项目”,该项目将作为模块导入。 - TheModularMind

0
我从头开始制作了一个Facebook模块版本 https://github.com/cesarferreira/Facebook-Module
如果您想在项目中使用此模块,您应该按照以下步骤进行:
  • 您应该在项目根目录下创建一个新的“libs”文件夹
  • 您应该将此项目复制到“libs”文件夹中,您必须手动复制项目,因为如果您使用拖放操作复制它,项目将无法工作,因为Android Studio会抛出错误
  • 将下一行添加到settings.gradle文件中:include ':libs:facebook'
  • 您应该重新构建项目
就是这样!

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接