我的项目工作正常,当我将facebook sdk添加到我的项目中时,我有一个这样的错误,我尝试了很多方法来修复这个问题,但我没有。那我该怎么办?
Error:Execution failed for task ':app:packageAllDebugClassesForMultiDex'.
> java.util.zip.ZipException: duplicate entry: bolts/AggregateException.class
我的应用程序gradle在下面
apply plugin: 'com.android.application'
android {
compileSdkVersion 21
buildToolsVersion '21.1.2'
defaultConfig {
applicationId "com.example.myproject"
minSdkVersion 9
targetSdkVersion 21
versionCode 1
versionName "1.0"
multiDexEnabled = true
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:21.0.3'
compile project(':facebook')
}
这是facebookbuild.gradle
apply plugin: 'com.android.library'
repositories {
mavenCentral()
}
project.group = 'com.facebook.android'
dependencies {
compile 'com.android.support:support-v4:[21,22)'
compile 'com.parse.bolts:bolts-android:1.1.4'
}
android {
compileSdkVersion 21
buildToolsVersion '21.1.2'
defaultConfig {
minSdkVersion 9
targetSdkVersion 21
}
lintOptions {
abortOnError false
}
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src']
res.srcDirs = ['res']
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}
}
apply plugin: 'maven'
apply plugin: 'signing'
def isSnapshot = version.endsWith('-SNAPSHOT')
def ossrhUsername = hasProperty('NEXUS_USERNAME') ? NEXUS_USERNAME : ""
def ossrhPassword = hasProperty('NEXUS_PASSWORD') ? NEXUS_PASSWORD : ""
task setVersion {
// The version will be derived from source
project.version = null
def sdkVersionFile = file('src/com/facebook/FacebookSdkVersion.java')
sdkVersionFile.eachLine{
def matcher = (it =~ /(?:.*BUILD = \")(.*)(?:\".*)/)
if (matcher.matches()) {
project.version = matcher[0][1]
return
}
}
if (project.version.is('unspecified')) {
throw new GradleScriptException('Version could not be found.', null)
}
}
uploadArchives {
repositories.mavenDeployer {
beforeDeployment { MavenDeployment deployment -> signing.signPom(deployment) }
repository(url: "https://oss.sonatype.org/service/local/staging/deploy/maven2/") {
authentication(userName: ossrhUsername, password: ossrhPassword)
}
snapshotRepository(url: "https://oss.sonatype.org/content/repositories/snapshots/") {
authentication(userName: ossrhUsername, password: ossrhPassword)
}
pom.project {
name 'Facebook-Android-SDK'
artifactId = 'facebook-android-sdk'
packaging 'aar'
description 'Facebook Android SDK'
url 'https://github.com/facebook/facebook-android-sdk'
scm {
connection 'scm:git@github.com:facebook/facebook-android-sdk.git'
developerConnection 'scm:git@github.com:facebook/facebook-android-sdk.git'
url 'https://github.com/facebook/facebook-android-sdk'
}
licenses {
license {
name 'The Apache Software License, Version 2.0'
url 'https://github.com/facebook/facebook-android-sdk/blob/master/LICENSE.txt'
distribution 'repo'
}
}
developers {
developer {
id 'facebook'
name 'Facebook'
}
}
}
}
}
uploadArchives.dependsOn(setVersion)
signing {
required { !isSnapshot && gradle.taskGraph.hasTask("uploadArchives") }
sign configurations.archives
}
task androidJavadocs(type: Javadoc) {
source = android.sourceSets.main.java.srcDirs
classpath += project.files(android.getBootClasspath().join(File.pathSeparator))
}
task androidJavadocsJar(type: Jar, dependsOn: androidJavadocs) {
classifier = 'javadoc'
from androidJavadocs.destinationDir
}
task androidSourcesJar(type: Jar) {
classifier = 'sources'
from android.sourceSets.main.java.sourceFiles
}
artifacts {
archives androidSourcesJar
archives androidJavadocsJar
}
afterEvaluate {
androidJavadocs.classpath += project.android.libraryVariants.toList().first().javaCompile.classpath
}
我也有类似的问题。这对我来说真的很沮丧,因为一切都很好,突然间它无缘无故地坏了。
该问题在重复条目:螺栓/聚合异常中暗示。类。这是Facebook和Parse使用的Bolts库的冲突。
对我来说,问题在于这两条线:
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.parse.bolts:bolts-android:1.1.4'
我已经下载了解析库并将它们放在/libs/
文件夹中。问题是该文件夹中还有另一个文件。
解决方案是删除该库并保留
compile”com。作语法分析螺栓:螺栓:1.1。4'
零件。
在我的例子中,我使用了
compile'com。作语法分析螺栓:螺栓:1'
而不是特定版本。这总是采用最新版本。因此,当
螺栓
升级到1.2版时。0时,由于
/libs/
文件夹中的版本突然与最新版本不再对齐,因此该内容似乎随机中断。
最佳做法是避免
1
样式版本控制,只需不时检查并更新到最新版本即可。
希望这对别人有帮助。
对我来说,我将Facebook SDK添加为一个项目,并将其设置为依赖项。
然而,排除工作后i切换到使用maven源。
我认为它只适用于maven,不适用于项目依赖关系?(如果有人知道,请提供正确信息)
换句话说,您现在可以删除Facebook SDK项目和文件。
记得加上
repositories {
mavenCentral()
}
如果你没有使用maven。
所以build.gradle是这样的,我注释出了项目方式。
repositories {
mavenCentral()
}
dependencies {
compile fileTree(dir: 'libs', include: '*.jar')
compile project(':google-play-services_lib')
compile ('com.facebook.android:facebook-android-sdk:3.23.0'){
exclude module: 'bolts-android'
exclude module: 'support-v4'
}
// compile (project(':FacebookSDK')){
// exclude module: 'bolts-android'
// exclude module: 'support-v4'
// }
compile (project(':UserVoiceSDK')){ exclude module: 'support-v4' }
}
现在他们将Bolt android分为Bolt applinks和Bolt任务。因此,您需要从gradle构建中排除这两者
compile ('com.facebook.android:facebook-android-sdk:4.10.0'){
exclude group: 'com.parse.bolts',
module: 'bolts-tasks'
exclude group: 'com.parse.bolts',
module: 'bolts-applinks';}
这对我来说是完美的!!!!
问题内容: 我知道这个问题已经在这里问过几次了。但是我还没有看到任何可能的解决方案。在我将项目“以Android应用程序身份运行”之前,如果我不清理它,则会收到以下错误,并且必须重新启动Eclipse …并再次清理。 com.jstun.core …是我的src文件夹的一部分,我当然不能删除它。即使我删除该程序包,另一个程序包也会显示为错误,例如: 自更新为ADT 15以来,我已经看到此错误,我正
我无法编译该项目,编译时出现以下错误: 错误:任务': myApp: dexDebug'执行失败。 通用域名格式。Android石斑鱼类。常见的内部的LoggedErrorException:无法运行命令:C:\Program Files(x86)\Android\Android studio\sdk\build tools\21.0.2\dx。bat--dex--输出C:\Users\Andro
我最近升级到Android Studio 3.0,在运行程序时我收到以下错误: 除了我的主模块外,我的项目中还有另外两个模块。我已经试过了 , 使用最新的构建工具和Java版本, 为false, 删除文件夹,但都不起作用。 有人能帮我吗? 模块: < code>Vuforia模块: 模块:
我遇到了Firebase集成的问题。首先,我在根级别文件: 和模块梯度文件: 在项目的构建过程中,我得到了以下错误: 错误:将字节码转换为dex:Cause:com时出错。Android德克斯。DexException:多个dex文件定义Lcom/google/firebase/FirebaseException; 错误原因很清楚,但我没有编译任何库两次。我是否应该手动从构建过程中排除类?如果是,
我敢肯定,不知怎么的,我添加了两倍的谷歌库。 多谢了。