我得到executionexception和大堆错误

时间:2017-03-11 09:01:55

标签: android processexception

对于更快的构建,请将Gradle守护程序的最大堆大小增加到3072 MB以上。

要在进程中运行dex,Gradle守护程序需要更大的堆。

要在项目gradle.properties中设置org.gradle.jvmargs = -Xmx3072M。 它目前大约有989 MB。

有关详细信息,请参阅https://docs.gradle.org/current/userguide/build_environment.html 错误:任务':app:transformClassesWithDexForDebug'执行失败。

  

com.android.build.api.transform.TransformException:java.lang.RuntimeException:com.android.ide.common.process.ProcessException:java.util.concurrent.ExecutionException:com.android.ide.common.process .ProcessException:org.gradle.process.internal.ExecException:进程'命令'C:\ Program Files \ Java \ jdk1.8.0_102 \ bin \ java.exe''以非零退出值1结束   :app:transformClassesWithDexForDebug FAILED

的build.gradle

apply plugin: 'com.android.application'

android {
    compileSdkVersion 24
    buildToolsVersion "24.0.2"

    defaultConfig {
        applicationId "videoplayer.avkinfosoft.com.videoplayer"
        minSdkVersion 11
        targetSdkVersion 24
        versionCode 1
        versionName "1.0"
        multiDexEnabled  true
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    dexOptions {
        javaMaxHeapSize "2g"
    }
    packagingOptions
            {
                pickFirst 'META-INF/license.txt'
                exclude 'META-INF/DEPENDENCIES'
                exclude 'META-INF/NOTICE'
                exclude 'META-INF/LICENSE'
                exclude 'META-INF/LICENSE.txt'
                exclude 'META-INF/NOTICE.txt'
            }
    productFlavors {
    }
}

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:24.2.1'
    compile 'com.android.support:design:24.2.1'
    compile 'com.android.support:support-v4:24.2.1'
    compile 'com.google.firebase:firebase-ads:9.4.0'
}

gradle.propties

项目范围的Gradle设置。

IDE(例如Android Studio)用户:  通过IDE 配置的Gradle设置将覆盖  此文件中指定的任何设置。

有关如何配置构建环境的详细信息,请访问  http://www.gradle.org/docs/current/userguide/build_environment.html

指定用于守护程序进程的JVM参数。  该设置对于调整内存设置特别有用。  默认值:-Xmx10248m -XX:MaxPermSize = 256m  org.gradle.jvmargs = -Xmx1024m -XX:MaxPermSize = 512m -XX:+ HeapDumpOnOutOfMemoryError -Dfile.encoding = UTF-8

配置后,Gradle将以孵化并行模式运行。  此选项仅应与分离的项目一起使用。更多细节,访问  http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects  org.gradle.parallel =真

org.gradle.jvmargs = -Xmx1024m

org.gradle.daemon =真

配置后,Gradle将以孵化并行模式运行。  此选项仅应与分离的项目一起使用。更多详情,请访问

http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects org.gradle.parallel =真

org.gradle.configureondemand =真

的manifest.xml

<application
    android:allowBackup="true"
    android:icon="@drawable/logo"
    android:label="@string/app_name"
    android:largeHeap="true"
    android:theme="@style/AppTheme"
    tools:replace="android:theme,android:icon">
在chnage错误之后

    dexOptions {
        javaMaxHeapSize "2g"
    }

错误:错误:发生了致命异常。程序将退出。

错误:错误:发生了致命异常。程序将退出。

错误:错误:发生了致命异常。程序将退出。

错误:错误:无法创建Java虚拟机。

错误:错误:无法创建Java虚拟机。

错误:最大堆大小无效:-Xmx4g

错误:指定的大小超出了最大可表示大小。

有关详细信息,请参阅https://docs.gradle.org/current/userguide/build_environment.html

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

  

com.android.build.api.transform.TransformException:java.lang.RuntimeException:com.android.ide.common.process.ProcessException:java.util.concurrent.ExecutionException:

com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException:处理'命令'C:\ Program

Files \ Java \ jdk1.8.0_102 \ bin \ java.exe''以非零退出值1结束

错误:错误:发生了致命异常。程序将退出。

错误:指定的大小超出了最大可表示大小。

错误:最大堆大小无效:-Xmx4g

错误:错误:无法创建Java虚拟机。

错误:指定的大小超出了最大可表示大小。

错误:最大堆大小无效:-Xmx4g

要在项目gradle.properties中设置org.gradle.jvmargs = -Xmx5120M。

错误:指定的大小超出了最大可表示大小。

错误:指定的大小超出了最大可表示大小。

错误:最大堆大小无效:-Xmx4g

错误:错误:无法创建Java虚拟机。 :app:transformClassesWithDexForDebug FAILED

错误:错误:发生了致命异常。程序将退出。

错误:错误:无法创建Java虚拟机。

错误:最大堆大小无效:-Xmx4g

目前大约有989 MB。

对于更快的构建,请将Gradle守护程序的最大堆大小增加到5120 MB以上。

要在进程中运行dex,Gradle守护程序需要更大的堆。

2 个答案:

答案 0 :(得分:2)

在应用标记的MenifestFile中添加android:largeHeap="true"

答案 1 :(得分:1)

您应该在javaMaxHeapSize部分添加 build.gradle

android {
compileSdkVersion //
buildToolsVersion //


dexOptions {
    javaMaxHeapSize "4g"
}

您可以访问以获取更多信息 Android Gradle: What is javaMaxHeapSize “4g”?