【问题标题】: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 文件。

标签: java android android-studio gradle


【解决方案1】:

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

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

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

  1. 更改您的 Gradle 构建配置以启用 multidex
  2. 修改清单以引用 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()' 可能原因:
  • 您使用的是哪个版本的 Gradle 插件?尝试使用最新的稳定版本进行更新。此链接可能对您有所帮助:stackoverflow.com/questions/27932066/…
  • @RohitSharma 重复条目异常与 65536 方法限制不同。
猜你喜欢
  • 2015-07-20
  • 2015-06-25
  • 1970-01-01
  • 1970-01-01
  • 2015-12-27
  • 2015-07-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多