在Android Studio中更新buildToolsVersion '23 .0.1'后出现内存不足问题


75

更新buildToolsVersion '22.0.1'至后,buildToolsVersion '23.0.1'我经常会遇到内存不足的问题,我真的很困惑,不知道如何解决此问题,因为此错误仅在buildToolsversion中显示23.0.1。当我将其更改为时,它工作正常22.0.1。请帮我。我发布了以下错误,

Uncaught translation error: java.util.concurrent.ExecutionException: java.lang.OutOfMemoryError: Java heap space
Uncaught translation error: java.util.concurrent.ExecutionException: java.lang.OutOfMemoryError: Java heap space
Uncaught translation error: java.util.concurrent.ExecutionException: java.lang.OutOfMemoryError: GC overhead limit exceeded
Uncaught translation error: java.util.concurrent.ExecutionException: java.lang.OutOfMemoryError: Java heap space
Uncaught translation error: java.util.concurrent.ExecutionException: java.lang.OutOfMemoryError: GC overhead limit exceeded
Uncaught translation error: java.util.concurrent.ExecutionException: java.lang.OutOfMemoryError: Java heap space
Error:Execution failed for task ':app:transformClassesWithDexForDebug'.
> com.android.build.transform.api.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'' finished with non-zero exit value 1

build.gradle

apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    buildToolsVersion '23.0.1'

    defaultConfig {
        applicationId "com.example.app"
        minSdkVersion 14
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
        // Enabling multidex support.
        multiDexEnabled true
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {

    compile 'com.android.support:appcompat-v7:23.0.1'
    compile 'com.android.support:support-v4:23.0.1'
    compile 'com.android.support:design:23.0.0'
    compile 'com.android.support:cardview-v7:23.0.1'
    compile 'com.android.support:recyclerview-v7:23.0.1'
    compile 'com.android.support:palette-v7:23.0.1'
    compile 'com.google.android.gms:play-services:7.5.0'
}

提前致谢。

Answers:


200

将此添加到build.gradle文件中的android闭包中:

dexOptions {
    javaMaxHeapSize "4g"
}

Android Studio Google JAR文件导致GC开销限制超出错误


我遇到了同样的问题,并且这个方法可行。但是为什么会发生此问题?
L. Swifter

@L。似乎更快地超出了GC开销限制。看来Java需要比默认堆更多的堆空间。
mhdjazmati

同样的问题,并在Android Studio 2.2 Beta 2 / Ubuntu 16.04 LTS上解决
PauloMendonça16年

29

接受的答案工作,但我很困惑的一点在哪里把dexOptions我的build.gradle。我们实际上将其放在android部分下。

这是示例片段:

android {

    dexOptions {
        javaMaxHeapSize "4g"
    }

    ......
}

13

实际上,对我来说,是一个更复杂的解决方案,该解决方案结合了以上所有内容,并在模块的build.gradle文件中启用了multidex

A.在defaultConfig部分中添加此行以启用multiDex

// Enabling multidex support.
multiDexEnabled true

B.像这样设置dexOptions

dexOptions {
    incremental true
    javaMaxHeapSize "4G"
}

C.更改为multidex并将其堆设置为4g后,可能会发生溢出错误,导致我取消注释并修改了该项目的gradle.properties文件中的jvmargs行,例如:

org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8

这些值可能会因您的机器而异。您还可以使用双精度值。


6

除了上述过程之外,还有另一个选项可以设置jvm参数。

org.gradle.jvmargs="-Xms2g -Xmx4g" in gradle.properties .

该设置用于调整内存。Xms:起始内存Xmx:最大内存


2

我解决了这个问题

  1. 转到“系统”
  2. 改善环境设置
  3. 将_JAVA_OPTIONS值从“ -Xms1024m”编辑为“ -Xms2048m”
    (如果不存在_JAVA_OPTIONS而不是创建它,请单击“新建”按钮)
  4. 确定并保存重新启动

我认为这对您也有帮助。如果有用的话,可以支持这个答案。


是@Ali这是Windows
迪内希


0

在您的应用程序级别build.gradle中使用它:

android {
    dexOptions {
        javaMaxHeapSize "4g"
    }
}
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.