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

时间:2015-10-12 07:37:53

标签: android android-studio build.gradle android-build build-tools

我将buildToolsVersion '22.0.1'更新为buildToolsVersion '23.0.1'后经常出现内存不足的问题我真的很困惑,不知道如何解决这个问题,因为此错误仅显示buildTools版本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'
}

提前致谢。

7 个答案:

答案 0 :(得分:197)

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

dexOptions {
    javaMaxHeapSize "4g"
}

Android Studio Google JAR file causing GC overhead limit exceeded error

答案 1 :(得分:29)

接受的答案有效,但我对将dexOptions放在build.gradle中的位置感到困惑。我们实际上把它放在了android部分。

以下是示例摘录:

android {

    dexOptions {
        javaMaxHeapSize "4g"
    }

    ......
}

答案 2 :(得分:12)

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

一个。在 defaultConfig 部分添加此行以启用multiDex

// Enabling multidex support.
multiDexEnabled true

B中。然后设置 dexOptions ,如下所示:

dexOptions {
    incremental true
    javaMaxHeapSize "4G"
}

℃。更改为multidex并将堆设置为4g后,可能会出现溢出错误,导致我取消注释并从项目的gradle.properties文件中修改jvmargs行,如:

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

值可能因机器而异。您也可以使用双值。

答案 3 :(得分:4)

除上述程序外,还有另一种设置jvm参数的选项。

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

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

答案 4 :(得分:2)

我解决了这个问题

  1. 转到“系统”
  2. 环境设置高级
  3. 将_JAVA_OPTIONS值从“-Xms1024m”编辑为“-Xms2048m”
    (如果没有存在_JAVA_OPTIONS而不是创建它,请点击新按钮)
  4. ok&保存重启
  5. 我认为这对你也有帮助。 如果有用的话可以提出这个答案。

答案 5 :(得分:0)

dexOptions {
        javaMaxHeapSize "4g"
    }

我在build.gradle文件中添加了这个问题(模块级别)解决了我的问题

答案 6 :(得分:-1)

在你的app level build.gradle中使用它:

android {
    dexOptions {
        javaMaxHeapSize "4g"
    }
}