在经过1-2分钟运行的几个构建之后,Gradle会一直运行(尝试等待30分钟),我唯一的解决方案是强制关闭Android Studio并重新启动。然后我可以再次建造,但过了一段时间,Gradle又被卡住了。然后我可以重复这个流程。 当我打开Activity Monitor时,它看起来像这样:
以下是我的一些gradle设置:
compileSdkVersion 26
buildToolsVersion "26.0.1"
dexOptions {
preDexLibraries true
javaMaxHeapSize "4G"
}
productFlavors {
production {
dimension "prod"
}
development {
minSdkVersion 21
resConfigs("en", "xxhdpi")
aaptOptions {
cruncherEnabled = false
}
ext.enableCrashlytics = false
dimension "prod"
}
}
gradle.properties:
org.gradle.parallel=true
org.gradle.daemon=true
org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
我的gradle设置
buildscript {
repositories {
jcenter()
maven { url 'https://maven.google.com' }
}
dependencies {
classpath 'com.android.tools.build:gradle:3.0.0-beta5'
classpath 'com.google.gms:google-services:3.0.0'
}
}
25分钟后我收到此消息(错误:java.lang.OutOfMemoryError:Java堆空间):
我该怎么做才能解决这个问题?
答案 0 :(得分:0)
尝试在gradlew中替换:
GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
通过
GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\" \"-Xmx1024m\" \"-Xms256m\" \"-XX:MaxPermSize=1024m\""
使用jvmargs,您只为任务或JVM指定内存。但是对于您的错误,您应该为Gradle提供内存,这应该通过在GRADLE_OPTS环境变量中指定来完成。
jvmargs=-Xmx2048m -XX:MaxPermSize=512m
完全不同于
GRADLE_OPTS="$GRADLE_OPTS \"-Xmx1024m\" \"-Xms256m\" \"-XX:MaxPermSize=1024m\""
您可以在gradle目录中左侧窗格的Project View中找到项目的gradlew
来源:https://groups.google.com/forum/#!msg/adt-dev/BY3GEIVGumU/ogYYDaWf-8gJ