签署 apk 时,我收到以下消息:
To run dex in process, the Gradle daemon needs a larger heap.
It currently has 1024 MB.
For faster builds, increase the maximum heap size for the Gradle daemon to at least 4608 MB (based on the dexOptions.javaMaxHeapSize = 4g).
To do this set org.gradle.jvmargs=-Xmx4608M in the project gradle.properties.
For more information see https://docs.gradle.org/current/userguide/build_environment.html
在我的项目中,我没有 gradle.properties 文件,但我有一个名为 gradle-wrapper.properties 的文件。
我打开该文件并添加了行
org.gradle.jvmargs=-Xmx4608M
。
此后,我再次尝试对 apk 进行签名,但我仍然收到 Gradle 堆大小增加的消息。
如何实现?
如果您没有
gradle.properties
,则转到您的项目文件夹,您将在其中找到 gradle 文件,创建一个文本文件并将其命名为 gradle.properties
,删除 .txt
,然后将以下代码添加到该文件中。
# Project-wide Gradle settings.
# IDE (e.g. Android Studio) users:
# Gradle settings configured through the IDE *will override*
# any settings specified in this file.
# For more details on how to configure your build environment visit
# http://www.gradle.org/docs/current/userguide/build_environment.html
# Specifies the JVM arguments used for the daemon process.
# The setting is particularly useful for tweaking memory settings.
org.gradle.jvmargs=-Xmx4096m
# When configured, Gradle will run in incubating parallel mode.
# This option should only be used with decoupled projects. More details, visit
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
# org.gradle.parallel=true
并保存它,然后在 Android Studio 中打开您的项目,然后单击“立即同步”。
我希望它能解决您的问题,如果不能,请告诉我。
我知道你说你的项目没有
gradle.properties
但你可以在 C:\Users\user\.gradle
中创建一个全局项目并添加:
org.gradle.jvmargs=-Xmx4096M
并记住运行
gradle --stop
来杀死任何以前的守护进程。
您可以尝试以下任一方法
1)更改 gradle.properties 文件并根据您的要求更改堆大小。
如果 org.gradle.jvmargs=-Xmx2048M 不够,则更改为给定的 4096
2) 从“帮助”菜单中选择“编辑自定义虚拟机选项”。
它将打开 studio.vmoptions / studio64.exe.vmoptions 文件
将内容更改为
-Xms128米
-Xmx4096米
-XX:MaxPermSize=1024m
-XX:ReservedCodeCacheSize=200m
-XX:+UseCompressedOops
保存文件并重新启动 Android Studio。
试试这个链接答案
dexOptions
{
javaMaxHeapSize "4g"
}
....
....
....
这是 Android 问题,但无论如何都会弹出 scala 内存不足 gradle 搜索,所以让我尝试节省一些可怜的灵魂的搜索时间。
Scala 在编译时默认分叉 JVM,并且 org.gradle.jvmargs 不适用于它。相反,您必须将参数传递给 gradle 中的 Scala 插件。这取决于您的特定设置,对我来说,这有效:
tasks.withType(ScalaCompile) {
configure(scalaCompileOptions.forkOptions) {
jvmArgs = ['-Xss4m', '-Xmx2048m']
}
}
如果您的构建由多个子项目组成,请将其放入主
build.gradle内的
subprojects { }
块中。
如果您想为 Kotlin 执行此操作并且不想添加 gradle.properties 文件,请将其添加到您的 build.gradle.kts
tasks.compileKotlin {
kotlinDaemonJvmArguments.add("-Xmx512m")
}
注意:这假设:kotlin("jvm") 版本 "1.9.23" + gradleVersion = "8.1.1"