Android Studio模拟器错误 - 结束时出现非零退出值2

7

我有一个应用程序,我已经开发/测试了一段时间,并且在调试时没有遇到任何问题。突然有一天它开始抛出错误,不再让我运行模拟器。错误如下:

* What went wrong:
Execution failed for task ':app:dexDebug'.

Gradle控制台输出以下错误: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: 进程“命令'C:\Program Files\Java\jdk1.7.0_75\bin\java.exe'”以非零退出值2完成
AGPBI: {"kind":"SIMPLE","text":"UNEXPECTED TOP-LEVEL EXCEPTION:","position":           {},"original":"UNEXPECTED TOP-LEVEL EXCEPTION:"}
AGPBI: {"kind":"SIMPLE","text":"com.android.dex.DexException: Multiple dex   files define Lbolts/AggregateException;","position":  {},"original":"com.android.dex.DexException: Multiple dex files define    Lbolts/AggregateException;"}
AGPBI: {"kind":"SIMPLE","text":"\tat com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:596)","position"     :{},"original":"\tat  com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:596)"}
AGPBI: {"kind":"SIMPLE","text":"\tat com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:554)","position": {},"original":"\tat   com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:554)"}
AGPBI: {"kind":"SIMPLE","text":"\tat com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:535)","position":{},"original":"\tat com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:535)"}
AGPBI: {"kind":"SIMPLE","text":"\tat com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:171)","position":{},"original":"\tat com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:171)"}
AGPBI: {"kind":"SIMPLE","text":"\tat com.android.dx.merge.DexMerger.merge(DexMerger.java:189)","position":{},"original":"\tat com.android.dx.merge.DexMerger.merge(DexMerger.java:189)"}
AGPBI: {"kind":"SIMPLE","text":"\tat com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:454)","position":{},"original":"\tat com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:454)"}
AGPBI: {"kind":"SIMPLE","text":"\tat com.android.dx.command.dexer.Main.runMonoDex(Main.java:303)","position":{},"original":"\tat com.android.dx.command.dexer.Main.runMonoDex(Main.java:303)"}
AGPBI: {"kind":"SIMPLE","text":"\tat com.android.dx.command.dexer.Main.run(Main.java:246)","position":{},"original":"\tat com.android.dx.command.dexer.Main.run(Main.java:246)"}
AGPBI: {"kind":"SIMPLE","text":"\tat  com.android.dx.command.dexer.Main.main(Main.java:215)","position": {},"original":"\tat com.android.dx.command.dexer.Main.main(Main.java:215)"}
AGPBI: {"kind":"SIMPLE","text":"\tat   com.android.dx.command.Main.main(Main.java:106)","position":{},"original":"\tat   com.android.dx.command.Main.main(Main.java:106)"}

我在stackoverflow和谷歌上搜索了几次这个错误,但是没有一个解决方案能够解决我的问题。我也附上了我的build.gradle文件。

apply plugin: 'com.android.application'

android {
compileSdkVersion 22
buildToolsVersion "22.0.0"

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

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

有人能在这里给我一点帮助吗?


如果您通过控制台(或Gradle面板)启动此Gradle任务,它是否会提供有关失败原因的更多信息? - AndroidEx
已解决 - 我必须在 build.gradle 文件中注释掉其中一个依赖项。 - user3803709
请将您的解决方案发布为答案并接受它 - ReDetection
2个回答

2
在我的情况下,问题通过清理项目并从build.gradle的依赖项中删除一些未使用的库得到解决。
如果你必须保留库,则可以通过在默认配置中添加来启用multi dex。
defaultConfig 
{        
    // Enabling multidex support.

    multiDexEnabled true
}

multiDexEnabled?我不想等1分钟来编译;)这不是一个好的解决方案。 - user3402040
这个解决方案对我很有效。如果您有更优的解决方案,请提供给我们。感谢评论。 - Chandrika Ajmera

0

SOLUTION by user3803709 taken from the question

I had to comment out the following in my build.gradle

dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:22.0.0'
//compile 'com.parse.bolts:bolts-android:1.+' *commented out*
compile fileTree(dir: 'libs', include: 'Parse-*.jar')

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接