在 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环境
Android Studio - build.gradle 未捕获翻译错误 ExecutionException OutOfMemory 中的问题
Android - Proguard 与 httpcore 和 httpmime 使用 Android Studio 和 Gradle