:app:dexDebug ExecException 以非零退出值 2 结束

Posted

技术标签:

【中文标题】:app:dexDebug ExecException 以非零退出值 2 结束【英文标题】::app:dexDebug ExecException finished with non-zero exit value 2 【发布时间】:2015-07-12 02:56:08 【问题描述】:

谁能帮我解决以下错误。当我清理项目时,它没有显示任何错误,但每次我尝试运行时都会收到此消息。

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

com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'C:\Program Files\Java\jdk1.8.0_45\bin\java.exe'' 完成非零退出值 2

应用程序运行时没有错误,但是当我的系统崩溃并重新启动 android studio 时,我几乎没有更新 Android API 22。更新后,应用程序不断给我这个错误消息。我下载了 JDK 8 并尝试运行但没有成功。后来我在这篇堆栈帖子之后降级到 JDK 7,但仍然没有修复它。 Is it possible to use Java 8 for Android development?

我查看了许多类似的问题,但没有一个对我有用。在堆栈上发现的一些类似问题是

why java.exe exit with value 1 in android studio

Error:Execution failed for task ':app:dexDebug'. > comcommand finished with non-zero exit value 2

Java finished with non-zero exit value 2 - Android Gradle

java.exe finished with non-zero exit value 2

Process 'command' C: \ Program Files \ Java \ jdk1.8.0_31 \ bin \ java.exe '' finished with a non -zero exit value 2

我查看了 gradle build 中的依赖关系,看看是否有任何冲突,但没有发现。

我什至尝试将代码复制到一个新项目中并运行它,但仍然没有成功。遇到过同样问题并解决了的人请帮帮我。

【问题讨论】:

【参考方案1】:

经过几天的尝试终于可以解决这个问题。我的 .jar 文件之一的问题。我不得不取出每个罐子并一一检查,直到找到它。我删除了 .jar 文件并清理了我的项目并成功运行。如果有人遇到类似问题,请一一检查您的 jar 文件。

【讨论】:

是重复库的问题?? 你甚至不需要一一尝试!!如果你仔细阅读日志,你会发现问题出在哪里 干得好,解决方案是:删除所有 jars,然后添加 1 到 1 和工作 :) @BhaveshHirpara 是的,在我的情况下重复库。有 Parse lib .jar 并在 gradle build 中声明。【参考方案2】:

我有同样的错误

app:dexDebug ExecException 以非零退出值 2 结束

我通过添加这行代码来解决它

defaultConfig 
        multiDexEnabled true

原因是我使用了太多的库

希望这篇文章对大家有所帮助

【讨论】:

此代码进入您的 gradle 构建文件,更多信息请参见:developer.android.com/tools/building/multidex.html【参考方案3】:

当我将 google play 服务编译到我的依赖项时,我遇到了同样的问题。

我的错误是我像这样编译整个包

编译'com.google.android.gms:play-services:8.3.0'

当我尝试选择性编译时,它起作用了。在我的情况下,我使用的是谷歌登录,所以它必须是

编译 'com.google.android.gms:play-services-auth:8.3.0'。

更多细节在文档中。 https://developers.google.com/android/guides/setup#split

希望有一天这会对某人有所帮助:)

【讨论】:

为我工作,谢谢。【参考方案4】:

我知道已经很晚了。 但这对我来说确实有效。

1. Build > Clean Project
2. Close gradle daemon processes (ps -e| grep gradle  //this will list gradle processes)
3. File > Invalidate caches & Restart

我希望这对每个人都有效。

【讨论】:

【参考方案5】:

为未来的读者。如果您使用自己的 AAR 并升级了具有共享依赖项的 AAR,您也可以尝试清理项目。在 Android Studio“构建”->“清理项目”中。

这为我解决了这个问题,所以我建议在开始挖掘依赖项之前快速尝试一下。

【讨论】:

如果 AAR 是源代码控制的一部分,并且由其他开发人员推动,这种情况会发生得更多。 (切换到本地 maven 服务器)【参考方案6】:

对我来说,解决方案是删除不必要/重复的依赖项。这是其他人在此处提供的类似解决方案,但与其他人提供的解决方案并不完全相同。

由于我已经在要编译的文件列表中包含 *.jar 文件,因此不需要在依赖项列表中添加其他条目。

之前:

dependencies 
    compile fileTree(dir: 'libs', include: ['*.jar'])

    compile 'com.android.support:appcompat-v7:22.2.0'
    compile 'com.parse.bolts:bolts-android:1.+'
    compile fileTree(dir: 'libs', include: 'Parse-*.jar')

之后:

dependencies 
compile fileTree(dir: 'libs', include: ['*.jar'])

compile 'com.android.support:appcompat-v7:22.2.0'

【讨论】:

【参考方案7】:

删除 compile 'com.parse:parse-android:1.+'

添加此行compile fileTree(dir: 'libs', include: ['Parse-*.jar'])

最后会是这个样子

dependencies 
compile fileTree(dir: 'libs', include: ['Parse-*.jar'])
compile 'com.android.support:appcompat-v7:22.2.0'
compile 'com.facebook.android:facebook-android-sdk:4.5.0'
compile 'com.android.support:design:22.2.0'
compile 'com.parse.bolts:bolts-android:1.+'

【讨论】:

【参考方案8】:

我遇到了同样的问题,只是我做了 Biuld--> Rebiuld 项目,它又可以工作了;)

【讨论】:

【参考方案9】:

我在我的 android 项目中使用了 robolectric 依赖项。我删除了 gradle 中的所有 robolectric 依赖项并删除了所有我的 robolectric 测试,然后我构建了应用程序,最后我可以运行 android 项目。希望这对我们有用。

【讨论】:

【参考方案10】:

我在尝试将SignalR Java client 库添加到我的项目依赖项时遇到了同样的问题。我首先将我的应用程序的目标 JDK 从 1.8.0_XX 更改为 1.7.0_XX,但它不起作用。然后我将 SignalR 项目也更改为针对 1.7.0_XX,重新构建并将其添加到我的项目的 libs 文件夹而不是第一个构建(在 1.8.0_XX 中),并且奇迹般地工作。

【讨论】:

【参考方案11】:

对我来说,问题在于我使用了不同版本的“Google Play 服务子 API”

之前: Click to see the image

之后: Click to see the image

【讨论】:

【参考方案12】:

检查是否有 2 个同名的类。每个类名都应该是唯一的。

【讨论】:

【参考方案13】:

也许你遇到的这个问题意味着你不止一次添加了同一个 liberay 文件

【讨论】:

以上是关于:app:dexDebug ExecException 以非零退出值 2 结束的主要内容,如果未能解决你的问题,请参考以下文章

Android Studio 构建失败并出现异常任务“:app:dexDebug”执行失败

使用新 Android Studio 项目的任务“:app:dexDebug”的 Gradle 执行失败

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

:app:dexDebug ExecException 以非零退出值 2 结束

Android Studio:意外的***异常:

调试中的 Android Studio 错误