以非零退出值结束

Posted

技术标签:

【中文标题】以非零退出值结束【英文标题】:Finished with non-zero exit value 【发布时间】:2016-04-30 06:49:44 【问题描述】:

当我尝试运行应用程序时出现此错误

错误:任务 ':app:transformClassesWithDexForDebug' 执行失败。 com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'C:\Program Files\Java\jdk1.7.0_25 \bin\java.exe'' 以非零退出值 2 结束

分级:

apply plugin: 'com.android.application'

android 
compileSdkVersion 23
buildToolsVersion "23.0.2"

defaultConfig 
    applicationId "com.dusanp.passer"
    minSdkVersion 19
    targetSdkVersion 23
    versionCode 1
    versionName "1.0"

buildTypes 
    release 
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-   android.txt'), 'proguard-rules.pro'
    



dependencies 
compile fileTree(include: ['*.jar'], dir: 'libs')
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.1.1'
compile 'com.android.support:design:23.1.1'
compile 'com.parse.bolts:bolts-android:1.+'
compile 'com.parse:parse-android:1.+'
compile fileTree(include: 'Parse-*.jar', dir: 'libs')
compile 'com.android.support:support-v4:23.+'
compile fileTree(include: ['*.jar'], dir: 'libs')
compile files('libs/sinch-android-rtc-3.7.1.jar')

【问题讨论】:

从您的 libs 文件夹中删除所有 parse-*.jar 文件。 【参考方案1】:

Android 应用程序 (APK) 文件包含 Dalvik Executable (DEX) 文件形式的可执行字节码文件,其中包含用于运行您的应用程序的编译代码。 Dalvik Executable 规范将单个 DEX 文件中可以引用的方法总数限制为 65,536 个,包括 Android 框架方法、库方法和您自己代码中的方法。要超过此限制,您需要将应用构建过程配置为生成多个 DEX 文件,称为 multidex 配置

这可能是由于超出了 Android 规定的 65K 方法 dex 限制。这个问题可以通过清理项目,从 build.gradle 中的依赖关系中删除一些未使用的库和方法,或者通过添加 multidex 支持来解决。

将您的应用开发项目设置为使用 multidex 配置需要您对应用开发项目进行一些修改。特别是您需要执行以下步骤:

    更改您的 Gradle 构建配置以启用 multidex 修改清单以引用 MultiDexApplication 类

这里是完整的详细信息:https://developer.android.com/tools/building/multidex.html

【讨论】:

谢谢。但是现在,在启用 multidex 后,我收到此错误:错误:任务':app:transformClassesWithJarMergingForDebug'的执行失败。 > com.android.build.api.transform.TransformException:java.util.zip.ZipException:重复条目:bolts/AggregateException.class 点击此链接可能会对您有所帮助:github.com/BoltsFramework/Bolts-Android/issues/80 我不确定在哪里放置 exclude module: 'bolts-android' 当我将它放在 compile 'com.parse:parse-android:1.+' 下时,我得到 Error:(36, 0) Gradle DSL method not found: 'com.android.support:multidex:1.0.1()' 可能原因: 项目'Passer'可能使用了不包含该方法的Gradle版本. Gradle 设置 构建文件可能缺少 Gradle 插件。 应用 Gradle 插件 您使用的是哪个版本的 Gradle 插件?尝试使用最新的稳定版本进行更新。此链接可能对您有所帮助:***.com/questions/27932066/… @RohitSharma 重复条目异常与 65536 方法限制不同。

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

进程“命令节点”以非零退出值 1 结束

错误:任务“:app:transformClassesWithDexForDebug”执行失败。以非零退出值 1 结束

进程'命令'C:/Users/xxxx/python.exe''以非零退出值1结束

gradle process 命令 java 以非零退出值 1 结束

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

spring-boot-starter-data-jpa 以非零退出值 1 结束