我在官方的Facebook开发者网站上关注了这个指南:
当我试图构建第一个示例应用程序时,我得到了错误:
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与链接手册中的相同。
答案 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
}
希望这有帮助。