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

Posted

技术标签:

【中文标题】在 Android Studio 中更新 buildToolsVersion \'23.0.1\' 后出现内存不足问题【英文标题】:Out of memory issue after updating buildToolsVersion '23.0.1' in Android studio在 Android Studio 中更新 buildToolsVersion '23.0.1' 后出现内存不足问题 【发布时间】:2016-01-09 14:36:42 【问题描述】:

在将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'

提前致谢。

【问题讨论】:

【参考方案1】:

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

dexOptions 
    javaMaxHeapSize "4g"

Android Studio Google JAR file causing GC overhead limit exceeded error

【讨论】:

我遇到了同样的问题,这很有效。但是为什么会出现这个问题呢? @L.更快的是,GC 开销限制超出了。似乎 java 需要比默认的更多的堆空间。 同样的问题并在 Android Studio 2.2 Beta 2 / Ubuntu 16.04 LTS 上解决【参考方案2】:

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

这里是 sn-p 示例:

android 

    dexOptions 
        javaMaxHeapSize "4g"
    

    ......

【讨论】:

【参考方案3】:

实际上,对我来说,我使用了一个更复杂的解决方案,它结合了上面的所有内容,并在模块的 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

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

【讨论】:

【参考方案4】:

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

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

该设置用于调整内存。 Xms:启动内存 Xmx:最大内存

【讨论】:

【参考方案5】:

我解决了这个问题

    转到“系统” 环境设置高级 将 _JAVA_OPTIONS 值从“-Xms1024m”编辑为“-Xms2048m” (如果不存在 _JAVA_OPTIONS 则单击新建按钮创建它) 确定并保存重启

我认为这对你也有帮助。 如果它有用,请支持这个答案。

【讨论】:

是的@Ali,这是针对 Windows 的【参考方案6】:
dexOptions 
        javaMaxHeapSize "4g"
    

通过在 build.gradle 文件中添加这个(模块级别)解决了我的问题,我遇到了同样的问题

【讨论】:

【参考方案7】:

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

android 
    dexOptions 
        javaMaxHeapSize "4g"
    

【讨论】:

以上是关于在 Android Studio 中更新 buildToolsVersion '23.0.1' 后出现内存不足问题的主要内容,如果未能解决你的问题,请参考以下文章

Android Studio 没有链接到华为调试设备。设备可以启动,但没有出现在设备选择列表中

Android Studio 错误消息:使用未声明的标识符“accept4”

android studio 2.2.2 32位怎么配置ndk cmake环境

Visual Studio Cordova 构建失败

Android Studio - build.gradle 未捕获翻译错误 ExecutionException OutOfMemory 中的问题

Android - Proguard 与 httpcore 和 httpmime 使用 Android Studio 和 Gradle