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

时间:2015-05-02 10:15:16

标签: java android android-studio gradle android-gradle

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

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

  

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

应用程序运行时没有错误但是当我的系统崩溃并重新启动android工作室时我几乎没有针对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中的依赖项,以查看是否存在任何冲突但未找到任何冲突。

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

13 个答案:

答案 0 :(得分:36)

经过几天的尝试终于可以解决问题。我的一个.jar文件的问题。我不得不拆下每个罐子并逐个检查,直到找到它为止。我删除了.jar文件并清理了我的项目并成功运行。如果任何人应该面对类似的问题,请逐个检查你的jar文件。

答案 1 :(得分:30)

我有同样的错误

  

app:dexDebug ExecException以非零退出值2

结束

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

defaultConfig {
        multiDexEnabled true
}

原因是我使用了太多的库

希望这篇文章可以帮助任何人

答案 2 :(得分:8)

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

我的错误是我正在编译像这样的enitre包

编译'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

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

答案 3 :(得分:4)

我知道它已经很晚了。 但这对我来说真的有用。

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

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

答案 4 :(得分:3)

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

由于我已将* .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'

}

答案 5 :(得分:3)

对于未来的读者。如果您正在使用自己的AAR并升级具有共享依赖关系的AAR,您也可以尝试清理项目。在Android Studio“Build”中 - > “清洁工程”。

这解决了我的问题,因此我建议您在开始挖掘依赖项之前先试一试。

答案 6 :(得分:2)

删除 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.+'
}

答案 7 :(得分:0)

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

答案 8 :(得分:0)

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

答案 9 :(得分:0)

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

<强>之前: Click to see the image

<强>后: Click to see the image

答案 10 :(得分:0)

我有同样的问题,只是我做了Biuld - &gt; Rebiuld项目,它再次工作;)

答案 11 :(得分:0)

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

答案 12 :(得分:0)

也许对于这个问题,你得到的意思是你多次添加相同的liberay文件