要在进程中运行dex,Gradle守护程序需要更大的堆。它目前有910 MB

时间:2016-02-05 12:27:16

标签: android android-studio

实际上,主要错误是" java.exe以非零退出值1和#34;结束。首先我告诉你安装工作室后我面临的每个问题:

三天前,我刚刚安装了android studio&我创建了新项目。

1)首先它抛出错误"插件太旧了,请更新到更新的版本",在google上搜索后我改变了

classpath : com.android.tools.build:gradle:2.0.0-alpha2

classpath : com.android.tools.build:gradle:2.0.0-alpha8

当前错误已解决。

2)之后它要求gradle 2.10,我也更新了这个&设置路径。 enter image description here 当前错误已解决。

3)当我运行我的应用程序时,我又收到了一个错误" app-debug-unaligned.apk,指定了属性'输入文件'不存在"。

我在网上搜索,我在stackoverflow上找到了一个解决方案。所以作为stackoverflow的答案我转到" Build" &安培;我选择了build apk

当前错误已解决。

4)但在那之后我又遇到了一个错误

"要在进程中运行dex,Gradle守护程序需要更大的堆。它目前有910 MB。 要加快构建速度,请将Gradle守护程序的最大堆大小增加到1G以上。

java.exe以非零退出值1"结束。

我最近三天一直在stackoverflow上搜索,我逐个应用了每一个答案,但我无法解决错误。请救我的命,我真的厌倦了这个问题。我向您展示了什么错误来自enter image description here

我的build.gradle文件

apply `plugin: com.android.application`

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.2"

    defaultConfig {
        applicationId "java.danish.org.myapplication"
        minSdkVersion 15
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

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

我更新了所有SDK平台& SDK工具。enter image description here

enter image description here

请告诉我这里我做错了什么。

3 个答案:

答案 0 :(得分:29)

问题

在gradle插件版本2.0.0-alpha7和-alpha8中,Dex在gradle构建过程中运行,而不是单独的过程。

选项a)

将gradle插件版本更改为2.0.0-alpha9,默认情况下禁用进程内Dex。

classpath 'com.android.tools.build:gradle:2.0.0-alpha9'

选项b)

在您的应用模块build.gradle中停用进程内dex:

android {
    // ...
    dexOptions {
        dexInProcess = false
    }
}

选项c)

增加可用于gradle过程的内存。

在项目根目录中创建或更新gradle.properties文件:

# Default value: -Xmx10248m -XX:MaxPermSize=256m
org.gradle.jvmargs=-Xmx4g -XX:MaxPermSize=512m

并更新您的应用模块build.gradle文件:

dexOptions {
    preDexLibraries true
    javaMaxHeapSize "3g"
    incremental true
    dexInProcess = true
}

这些值是实验性的,适用于我的设置。我使用3 GB作为dex,使用4 GB作为gradle(3 + 1 GB)。

注意

如果您对alpha9有任何问题更新。

答案 1 :(得分:6)

我找到了解决方案。

变化 1)

 dexOptions {
            javaMaxHeapSize "4g"
        }

2)

 lintOptions {
            checkReleaseBuilds false
            abortOnError false
        }

这是我的新build.gradle,现在一切正常。

apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    buildToolsVersion "24.0.0 rc4"

    dexOptions {
        javaMaxHeapSize "4g"
    }
    defaultConfig {
        applicationId "com.aquasoft.guesp"
        minSdkVersion 15
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
        multiDexEnabled true
    }
    lintOptions {
        checkReleaseBuilds false
        abortOnError false
    }
    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.4.0'
    compile 'com.mcxiaoke.volley:library-aar:1.0.0'
    compile 'com.android.support:recyclerview-v7:23.3.0'
    compile 'com.squareup.picasso:picasso:2.5.0'
    compile 'com.google.android.gms:play-services:9.0.0'
    compile 'com.android.support:design:23.4.0'
    compile 'com.stripe:stripe-android:+'
    compile 'com.roomorama:caldroid:3.0.1'
    compile 'com.android.support:cardview-v7:23.3.+'
}

答案 2 :(得分:2)

试试这个gradle params

defaultConfig {
    ...

    // Enabling multidex support.
    multiDexEnabled true
}