【问题标题】:Android Studio Gradle assembleDebug error with Google dependencies [duplicate]带有Google依赖项的Android Studio Gradle assembleDebug错误[重复]
【发布时间】:2015-07-25 19:11:16
【问题描述】:

我正在尝试调试我的 Android 应用程序,但我从 gradlew assembleDebug 收到以下错误:

AGPBI: {"kind":"simple","text":"UNEXPECTED TOP-LEVEL EXCEPTION:","sources":[{}]}
AGPBI: {"kind":"simple","text":"com.android.dex.DexException: Multiple dex files define Lcom/google/android/gms/plus/model/people/Person$AgeRange;","sources":[{}]}
AGPBI: {"kind":"simple","text":"\tat com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:596)","sources":[{}]}
AGPBI: {"kind":"simple","text":"\tat com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:554)","sources":[{}]}
AGPBI: {"kind":"simple","text":"\tat com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:535)","sources":[{}]}
AGPBI: {"kind":"simple","text":"\tat com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:171)","sources":[{}]}
AGPBI: {"kind":"simple","text":"\tat com.android.dx.merge.DexMerger.merge(DexMerger.java:189)","sources":[{}]}
AGPBI: {"kind":"simple","text":"\tat com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:454)","sources":[{}]}
AGPBI: {"kind":"simple","text":"\tat com.android.dx.command.dexer.Main.runMonoDex(Main.java:303)","sources":[{}]}
AGPBI: {"kind":"simple","text":"\tat com.android.dx.command.dexer.Main.run(Main.java:246)","sources":[{}]}
AGPBI: {"kind":"simple","text":"\tat com.android.dx.command.dexer.Main.main(Main.java:215)","sources":[{}]}
AGPBI: {"kind":"simple","text":"\tat com.android.dx.command.Main.main(Main.java:106)","sources":[{}]}

 FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:dexDebug'.
> com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'C:\Program Files\Java\jdk1.8.0_11\bin\java.exe'' finished with non-zero exit value 2

我查看过过去的类似问题,但无法找到解决方案。我认为这与我的 gradle 文件有关,因为我刚刚添加了一些 Google API 的东西。

项目的build.gradle:

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    repositories {
        jcenter()
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:1.2.3'
        classpath 'com.google.gms:google-services:1.3.0-beta1'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        jcenter()
    }
}

模块的build.gradle:

apply plugin: 'com.android.application'
apply plugin: 'com.google.gms.google-services'

android {
    compileSdkVersion 22
    buildToolsVersion '22.0.1'

    defaultConfig {
        applicationId "com.zarwanhashem.ideatrackr"
        minSdkVersion 15
        targetSdkVersion 22
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile 'com.android.support:appcompat-v7:22.2.0'
    compile 'com.google.android.gms:play-services:7.5.0'
}

自从我上次成功调试以来,唯一添加到这些文件中的东西是 Google 的东西。我尝试了干净的构建、删除 .gradle 和删除 .idea。

编辑: 这是我的 libs 文件夹中的 jar,以防有些冲突: gdata-client-1.0.jar
gdata-client-meta-1.0.jar
gdata-core-1.0.jar
gdata-spreadsheet-3.0.jar
gdata-spreadsheet-meta-3.0.jar
google-play-services.jar
gson-2.2.4.jar
guava-18.0.jar

编辑 2: 按照下面 cmets 中的说明进行操作后,错误消息更改为:

Execution failed for task ':app:packageAllDebugClassesForMultiDex'.
> java.util.zip.ZipException: duplicate entry: com/google/android/gms/internal/x.class

我浏览了我的库,但只能在 google play jar 中找到 gms 目录,所以我不知道它与什么冲突。

【问题讨论】:

  • 这个错误意味着你有两次包含同一个库。我最初的猜测是你的库中有一个与应用程序兼容或播放服务冲突的 .jar。但是我附近没有我的 Android Studio 来检查您是否正确导入了 appcompat 和/或 play-services。
  • 我将它们编辑到我的帖子中。你看到任何冲突吗? @MartínMarconcini
  • 首先你可以通过 gradle compile 'com.google.code.gson:gson:2.3.1' 包含 gson (替换为最新版本,我认为是那个)。然后我看到你那里也有 google-play-services.jar,这可能是你的问题。检查developers.google.com/android/guides/setup 以确保您以正确的方式添加播放服务。
  • 我不知道 gdata 的...确保它们不会相互冲突。
  • Guava 也可以 gradle'd:compile group: 'com.google.guava', name: 'guava', version: '18.0'(来源:code.google.com/p/guava-libraries/wiki/UseGuavaInYourBuild

标签: java android gradle google-api google-play-services


【解决方案1】:

我认为您从 eclipse 迁移到 AS 并且您的文件夹 libs 中仍然存在

android-support-v4.jar --> 删除它

它应该可以工作

【讨论】:

    猜你喜欢
    • 2014-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-08
    • 1970-01-01
    • 2015-01-25
    • 2014-04-03
    • 2019-09-21
    相关资源
    最近更新 更多