0

我在官方 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,而我的项目也想包含它,我试图删除它 - 但它没有帮助。

我的项目的构建等级:

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 与链接手册中的相同。

4

1 回答 1

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

}

希望这可以帮助。

于 2013-09-25T08:46:25.827 回答