错误:任务':app:dexDebug'的执行失败。com.android.ide.common.process.ProcessException


71

错误:任务':app:dexDebug'的执行失败。

com.android.ide.common.process.ProcessException:org.gradle.process.internal.ExecException:进程'命令'C:\ Program Files \ Java \ jdk1.8.0_40 \ bin \ java.exe'以非零退出值2

我搜索了所有类似的问题和解决方案,但没有帮助。希望像您这样的专家来。

项目代码已上传到bitbucket:https://tainule@bitbucket.org/tainule/numad-huizhang.git

我有两个模块,应用程序和端点。以下来自Module:app:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 21
    buildToolsVersion "21.1.2"

    defaultConfig {
        applicationId "edu.neu.madcourse.huizhang1"
        minSdkVersion 14
        targetSdkVersion 21
        versionCode 3
        versionName "2.1"
//        multiDexEnabled true
    }
    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:21.0.+"
    compile 'com.google.android.gms:play-services:+'
    compile 'com.google.guava:guava:18.0'
    compile 'com.google.code.gson:gson:1.7.2'
    compile 'org.apache.httpcomponents:httpmime:4.4-beta1'
    compile 'org.apache.httpcomponents:httpclient:4.4-beta1'
    compile 'org.apache.httpcomponents:httpcore:4.4-beta1'
    compile 'com.nostra13.universalimageloader:universal-image-loader:1.9.3'
    compile project(path: ':endpoint', configuration: 'android-endpoints')
    compile files('src/main/res/libs/KeyValueAPI.jar')

}

以下是来自模块端点的信息:

buildscript {
    repositories {
        mavenLocal()
        mavenCentral()
    }
    dependencies {
        classpath 'com.google.appengine:gradle-appengine-plugin:1.9.17'
    }
}

repositories {
    mavenCentral();
}

apply plugin: 'java'
apply plugin: 'war'
apply plugin: 'appengine'

sourceCompatibility = 1.7
targetCompatibility = 1.7

dependencies {
    appengineSdk 'com.google.appengine:appengine-java-sdk:1.9.8'
    compile 'com.google.appengine:appengine-endpoints:1.9.8'
    compile 'com.google.appengine:appengine-endpoints-deps:1.9.8'
    compile 'javax.servlet:servlet-api:2.5'
    compile 'com.googlecode.objectify:objectify:4.0b3'
    compile 'com.ganyo:gcm-server:1.0.2'
//        compile 'com.github.fengdai:alertdialogpro-theme-material:0.1.0'

}

appengine {
    downloadSdk = true
    appcfg {
        oauth2 = true
    }
    endpoints {
        getClientLibsOnBuild = true
        getDiscoveryDocsOnBuild = true
    }
}

如果有任何机会,您至少需要给我们一些背景
DevDonkey

嗨,马特,谢谢您的答复。可能的原因可能是我添加了一个外部库模块--endpoints。这就是我所知道的。并且代码已上传到bitbucket,请您帮帮我吗?tainule@bitbucket.org/tainule/numad-huizhang.git

作为问题的一部分,请在此处发布代码的相关部分(特别是build.gradle)。
yole

是的 谢谢您的帮助。

我也遇到了同样的错误,请帮助提供一些建议以解决它。我没有上传到任何bitbuket或其他。
哈莎2015年

Answers:


82

似乎您有一个jar文件或一个lib出现多次。

因此,请从lib文件夹中删除.jar文件,然后:

Build > Rebuild


1
你是救生员。本来需要我几天时间才能解决。非常感谢。
Quantium

1
很好,就我而言,这是有道理的,因为我们错误地app/build将SVN的内容签入,这在本地搞砸了我们的构建。
罗伯托

2
在AS 1.5上对我不起作用它可以成功重建,但是我尝试运行它时遇到了与上述问题相同的错误:(
Ahmed

2
错误:任务':ReliantApp:transformClassesWithDexForDebug'的执行失败。> com.android.build.api.transform.TransformException:com.android.ide.common.process.ProcessException:org.gradle.process.internal.ExecException:处理'command'C:\ Program Files \ Java \ jdk1.8.0 _60 \ BIN \的java.exe“”具有非零退出值2结束
艾哈迈德

45

我有显示的相同问题错误,我通过添加解决它

defaultConfig {        
    // Enabling multidex support.
    multiDexEnabled true
}

我遇到了这个问题,因为我超过了Android施加的65K方法dex限制,我使用了太多的库


1
此答案应标记为正确答案。在尝试了上述所有问题之后,这个对我有用。我知道这肯定是一个糟糕的解决方案,但使用多个Android库的他将面临此问题,并且该解决方案将对他/她有效。因为这些库使用v4或v7支持库。因此,在您的项目,重复进行库超过1
穆罕默德阿迪勒

这对我有用,它是所有解决方案中唯一的解决方案。其他所有用户都检查所有其他解决方案,以防万一它们无法正常工作。
Divyanshu Negi

嗨,我要在哪里添加?
半泽直树

您的应用程序模块的内部build.gradle文件将其放入android {...}
Netero,2016年

非常感谢!肯定这应该是正确的答案。
vinicius gati

20

我添加它是为了让处于类似情况的人可能会觉得有用。

因此,即使multiDexEnabled = true我遇到了同样的错误。我没有重复的库。上述解决方案均无效。阅读错误日志后,我发现OutOfMemError问题是主要原因,并且想到了heap size以某种方式进行更改的想法。因此,这-

dexOptions {
        preDexLibraries = false
        javaMaxHeapSize "4g"
    }

其中“ 4g”表示HeapSize4 GB。而且有效!我希望它也对您有用。


添加完之后,我必须取出multiDexEnabled才能使它最终工作。
JimJty

这样您的应用程序可以在未启用multiDex的情况下运行?
哈里斯瓦克

是的,如果我添加启用了multiDex的功能,则会出现一些我没有时间进一步研究的错误。我现在要接受它,谢谢。
JimJty

谢谢!我整天都在解决这个问题。但是我只将javaMaxHeapSize“ 4g”添加到gradle中,它可以工作。
Kimi Chiu

15

对我来说,包含同一库的多个版本/app/libs。我用解析和我都ParseFacebookUtilsV3-1.9.0.jarParseFacebookUtilsV4-1.9.0.jar

删除V3罐子即可解决问题。


我遇到了同样的问题,非常感谢。
alvarodev

11

最后,我通过将“ com.google.guava:guava:18.0”的编译更改为“ com.google.guava:guava-jdk5:17.0”来解决了这个问题。


2
那可能是由于提到的方法限制。较旧的Guava版本中可能包含较少的方法。启用multidex可以真正解决此问题。
Ken Van Hoeylandt

1
就我而言,我已经在使用“ com.google.guava:guava:17.0”,但问题是相同的。
CoDe15年



6

我遇到了完全相同的错误消息。我不确定我的解决方案是否还能解决您的问题。

在项目结构(应用程序)中,我将Compile SDK版本从API 22更改为API 21,并将构建工具版本从22.0.0更改为21.1.2。

当我下载最新的API 22 Adroid 5.1时,我创建的每个项目都在使用此API,并导致了问题。也许,Android团队正在寻找针对此问题的修复程序。


4

我最近将一个公司项目从Eclipse迁移到了Android Studio。

在迁移过程中,我们也遇到以下错误:

错误:任务':appName:transformClassesWithDexForDebug'的执行失败。com.android.build.api.transform.TransformException:com.android.ide.common.process.ProcessException:org.gradle.process.internal.ExecException:处理'command'/Library/Java/JavaVirtualMachines/jdk1.7.0_79。 jdk / Contents / Home / bin / java''完成,退出值非零2

为了解决这个问题,我们必须做一些事情:

  1. 从库中删除/更新重复的jar /文件

编译'com.android.support:support-v4:23'编译'com.google.android.gms:play-services:9.0.0'

compile 'com.google.android.gms:play-services:9.0.0'

  1. 将multiDexEnabled设置为True

defaultConfig {multiDexEnabled true}

  1. 增加堆大小:

dexOptions {增量式true javaMaxHeapSize“ 4g”}


3

当对象引用过多时,也可能是这种情况。看一下构建的结果,尤其是在任务:dex:multiDebug中:

编写输出时遇到麻烦:方法参考过多:67114; 最大值是65536。


2

尝试将这行代码放入您的主要项目gradle脚本中:

configurations { all*.exclude group: 'com.android.support', module: 'support-v4' }

我有两个链接到我的项目的库,它们使用“ com.android.support:support-v4:22.0.0”。

希望它能帮助某人。


1
是的,这是一个非常糟糕的解决方案(对此很抱歉)。虽然,我找到了另一个解决方案。有必要将RecyclerView包含到我的项目中,并且它需要support-v4库。因此,我不得不从所有依赖项项目中手动排除support-v4 lib,并将其添加到我的主要gradle脚本中(使用gradle列出您的依赖项,以便您可以看到其他使用support-v4 lib的东西)
Beemo 2015年


1

尝试清理并重建项目。我有完全相同的问题,这解决了它。


您能告诉我如何使用Windows命令清理离子项目吗?
Sachin HR

0

我遇到了同样的问题,并通过将'+'更改为确切的数字来解决,例如编译“ com.android.support:appcompat-v7:21.0.+”来编译“ com.android.support:appcompat-v7:21.0 .0”。

这对我有用。:)


0

我变了 :

compile 'com.google.android.gms:play-services:9.0.0'

compile 'com.google.android.gms:play-services-auth:9.0.0'

至 :

compile 'com.google.android.gms:play-services-maps:9.0.0'

compile 'com.google.android.gms:play-services-auth:9.0.0'


0

在将eclipse项目转换为Android Studio时遇到相同的问题。在我的情况下,我在eclipse项目中有设计库jar文件,并且在gradle中添加了相同的依赖项导致了错误。我通过从lib中删除jar来解决此问题。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.