【问题标题】: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'
}

提前致谢。

【问题讨论】:

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


    【解决方案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】:

          我解决了这个问题

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

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

          【讨论】:

          • 是的@Ali,这是针对 Windows 的
          【解决方案6】:
          dexOptions {
                  javaMaxHeapSize "4g"
              }
          

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

          【讨论】:

            【解决方案7】:

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

            android {
                dexOptions {
                    javaMaxHeapSize "4g"
                }
            }
            

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 2016-08-01
              • 1970-01-01
              • 2014-08-01
              • 1970-01-01
              • 1970-01-01
              • 2019-07-04
              • 1970-01-01
              相关资源
              最近更新 更多