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

时间:2015-03-07 17:20:40

标签: java android gradle

错误:任务':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

我有两个模块,app和端点。以下是来自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
    }
}

15 个答案:

答案 0 :(得分:82)

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

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

Build> Rebuild

答案 1 :(得分:45)

我遇到了同样的问题错误,我通过添加

解决了这个问题
defaultConfig {        
    // Enabling multidex support.
    multiDexEnabled true
}

我有这个问题,因为我超过了Android使用了这么多库

所施加的65K方法dex限制

答案 2 :(得分:20)

我正在添加它,以便处于类似情况的人可能会发现它有用。

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

dexOptions {
        preDexLibraries = false
        javaMaxHeapSize "4g"
    }

其中“4g”表示{4}的HeapSize。它奏效了!我希望它也适合你。

答案 3 :(得分:15)

对我来说,/app/libs中包含了同一个库的多个版本。我正在使用Parse,我同时拥有ParseFacebookUtilsV3-1.9.0.jarParseFacebookUtilsV4-1.9.0.jar

删除V3 jar解决了这个问题。

答案 4 :(得分:11)

最后,我通过更改编译'com.google.guava:guava:18.0'来编译'com.google.guava:guava-jdk5:17.0'来解决这个问题

答案 5 :(得分:7)

三个条件可能会导致此问题。

  1. 不同的模块有不同的jar
  2. lib中的
  3. 包含jar,但在src中添加了相关的源
  4. gradle repeat包含,例如:

    编译fileTree(包括:['* .jar'],dir:'libs')

    编译文件('libs / xxx.jar')

  5. 如果你能读中文,请在这里阅读Error:Execution failed for task ':app:dexDebug'.> com.android.ide.common.process.ProcessException: o

答案 6 :(得分:6)

我遇到了同样的确切错误消息。我不太确定我的解决方案是否能解决您的问题。

在项目结构(app)中,我将Compile SDK Version从API 22更改为API 21,并将Build Tools Version从22.0.0更改为21.1.2。

当我下载最新的API 22 Adroid 5.1时,我创建的每个项目都使用此API并导致我遇到问题。也许,Android Team正在寻找一个解决方案。

答案 7 :(得分:6)

在两次包含相同课程后我遇到了这个问题

答案 8 :(得分:4)

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

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

  

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

结束

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

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

    编译'com.android.support:support-v4:23'编译   'com.google.android.gms:播放服务:9.0.0'

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

    1. 将multiDexEnabled设置为True
    2.   

      defaultConfig {multiDexEnabled true}

      1. 增加堆大小:
      2.   

        dexOptions {           增量真实           javaMaxHeapSize“4g”       }

答案 9 :(得分:2)

尝试将这行代码放在主项目gradle脚本中:

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

我有两个链接到我的项目的库,以及使用&com; com.android.support:support-v4:22.0.0'的地方。

希望它有所帮助。

答案 10 :(得分:2)

我通过删除:

解决了同样的问题
compile fileTree(include: ['*.jar'], dir: 'libs')

并为每个jar文件添加:

compile files('libs/yourjarfile.jar')

答案 11 :(得分:1)

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

答案 12 :(得分:0)

我有同样的问题,并通过改变' +'来解决。确切的数字,如编译" com.android.support:appcompat-v7:21.0。+"编译" com.android.support:appcompat-v7:21.0.0"。

这对我有用。 :)

答案 13 :(得分: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'

答案 14 :(得分:0)

将eclipse项目转换为Android Studio时遇到相同的问题。我的情况是eclipse项目中有设计库jar文件,并且在gradle中添加了相同的依赖项导致了错误。库。