编译Facebook Android SDK示例应用程序时出错

时间:2013-09-24 17:05:13

标签: android gradle android-studio facebook-android-sdk

我在官方的Facebook开发者网站上关注了这个指南:

https://developers.facebook.com/docs/getting-started/facebook-sdk-for-android-using-android-studio/3.0/

当我试图构建第一个示例应用程序时,我得到了错误:

Gradle: Error while executing dx command
Gradle: UNEXPECTED TOP-LEVEL EXCEPTION:
Gradle: java.lang.IllegalArgumentException: already added: Landroid/support/v4/widget/CursorAdapter$1;
Gradle: at com.android.dx.dex.file.ClassDefsSection.add(ClassDefsSection.java:123)
Gradle: at com.android.dx.dex.file.DexFile.add(DexFile.java:163)
Gradle: at com.android.dx.command.dexer.Main.processClass(Main.java:490)
Gradle: at com.android.dx.command.dexer.Main.processFileBytes(Main.java:459)
...
Gradle: 1 error; aborting
Gradle: Execution failed for task ':abcd:dexDebug'.

我认为这是因为facebook sdk中包含android-support-v4,我的项目也想要包含它,我试图删除它 - 但它没有帮助。

我的项目构建gradle:

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

repositories {
    mavenCentral()
}

android {
    compileSdkVersion 18
    buildToolsVersion "18.0.1"

    defaultConfig {
        minSdkVersion 7
        targetSdkVersion 16
    }
}

dependencies {
    compile 'com.android.support:appcompat-v7:18.0.0'
    compile project(':libraries:facebook')
}

facebook的sdk build gradle与链接手册中的相同。

1 个答案:

答案 0 :(得分:3)

有一个类似的问题,对我来说这是因为我正在使用支持sdk的外部lib版本,看起来你也是。您需要编辑facebook库中的build.gradle文件以使用相同的支持库。

依赖项{

compile 'com.android.support:appcompat-v7:18.0.0'
//compile files('libs/android-support-v4.jar')  - As outlined by Facebook

}

希望这有帮助。