Gradle执行app:run时触发malloc()内存匹配错误求助
Gradle运行Java应用触发malloc错误,退出码134
环境信息
- Linux Mint 21
- Java 8(jdk1.8.0_381)
- Gradle 7.3
复现方式
执行命令:
./gradlew app:run
错误详情
./gradlew app:run malloc(): mismatching next->prev_size (unsorted) > Task :app:run FAILED FAILURE: Build failed with an exception. * 问题详情: 任务':app:run'执行失败。 > 进程'/home/alexei/.sdkman/candidates/java/jdk1.8.0_381/bin/java'以非零退出码134结束。 * 建议尝试: > 使用--info或--debug选项获取更多日志输出。 > 使用--scan选项获取完整分析信息。 * 异常栈信息: org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:run'. at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.lambda$executeIfValid$1(ExecuteActionsTaskExecuter.java:145) at org.gradle.internal.Try$Failure.ifSuccessfulOrElse(Try.java:282) at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeIfValid(ExecuteActionsTaskExecuter.java:143) at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:131) at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:77) at org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:46) at org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter.execute(ResolveTaskExecutionModeExecuter.java:51) at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:57) at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:56) at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36) at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:77) at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:55) at org.gradle.api.internal.
解决建议
- 换JDK版本测试:
malloc()错误属于底层内存分配异常,大概率和当前用的JDK 1.8.0_381有关。可以切换到同版本系列的其他小版本(比如1.8.0_371),或者升级到Java 11/17(如果项目允许),再重新运行。 - 调整JVM内存参数:在项目的
build.gradle中给run任务加内存限制,避免内存分配过载:tasks.named('run') { jvmArgs = ['-Xmx512m', '-Xms256m'] } - 清理Gradle缓存:执行
./gradlew clean build --refresh-dependencies,清空旧的构建缓存和依赖文件,排除缓存损坏的可能。 - 检查系统内存:用
free -h查看系统剩余内存,确保有足够空间供JVM和Gradle运行,系统内存不足也会触发这类malloc错误。 - 查看详细日志:按提示执行
./gradlew app:run --info或./gradlew app:run --debug,拿到更细的执行日志,定位具体是哪部分代码或依赖出了问题。
内容的提问来源于stack exchange,提问作者Alexei
相关产品推荐
相关产品推荐

