IntelliJ Idea 给出 java.lang.OutOfMemoryError: Java heap space error even after increasing heap size

新手上路,请多包涵

在 IntelliJ Idea 上编译我的 android 项目时,我多次遇到 java.lang.OutOfMemoryError: Java heap space 错误。

我通过点击 此处 的链接增加了我的 Java 堆空间,但这并没有解决问题。有趣的是,有时我的应用程序可以编译,而有时由于 java 堆空间错误,应用程序将无法编译。即使我没有对应用程序进行任何更改,它有时也会编译并有时会失败。

关于如何解决这个问题的任何想法?

我正在编译一个android项目,可能是因为我有大量或资源(drawable hdpi, xhdpi, xxhdpi, large-hdpi, large-xhdpi, large-xxhdpi)?但话又说回来,就像我说的那样,它有时会编译,有时不会。我每次都要进行大约 10 次编译尝试,幸运的是它会成功一次。

这是错误:

内部错误:(java.lang.OutOfMemoryError)Java 堆空间 java.lang.OutOfMemoryError:Java 堆空间位于 com.intellij.util.io.UnsyncByteArrayOutputStream.write( UnsyncByteArrayOutputStream.java:52) 在 com.intellij.util.io.DataOutputStream.write(DataOutputStream.java:34) 在 java.io.FilterOutputStream.write(FilterOutputStream.java:97) 在 com.intellij.util.io.IOUtil .writeString(IOUtil.java:63) 在 org.jetbrains.jps.incremental.storage.OneToManyPathsMapping\(PathCollectionExternalizer.save(OneToManyPathsMapping.java:87) 在 org.jetbrains.jps.incremental.storage.OneToManyPathsMapping\)PathCollectionExternalizer.save(OneToManyPaths) .java:84) 在 org.jetbrains.jps.incremental.storage.AbstractStateStorage\(1.append(AbstractStateStorage.java:103) 在 com.intellij.util.io.PersistentHashMap.doAppendData(PersistentHashMap.java:371) 在 com.intellij .util.io.PersistentHashMap.appendData(PersistentHashMap.java:358) 在 org.jetbrains.jps.incremental.storage。 org.jetbrains.jps.incremental.storage.OneToManyPathsMapping.appendData(OneToManyPathsMapping.java:50) 在 org.jetbrains.jps.incremental.storage.SourceToOutputMappingImpl.appendOutput(SourceToOutputMappingImpl.java: 50) 在 org.jetbrains.jps.builders.impl.BuildOutputConsumerImpl.registerOutputFile(BuildOutputConsumerImpl.java:65) 在 org.jetbrains.jps.android.AndroidResourceCachingBuilder.runPngCaching(AndroidResourceCachingBuilder.java:126) 在 org.jetbrains.jps.android .AndroidResourceCachingBuilder.build(AndroidResourceCachingBuilder.java:48)在 org.jetbrains.jps.android.AndroidResourceCachingBuilder.build(AndroidResourceCachingBuilder.java:32)在 org.jetbrains.jps.incremental.BuildOperations.buildTarget(BuildOperations.java:100)在org.jetbrains.jps.incremental.IncProjectBuilder.runBuildersForChunk(IncProjectBuilder.java:744)在 org.jetbrains.jps.incremental.IncProjectBuilder.buildTargetsChunk(IncProjectBuilder.java:770) org.jetbrains.jps.incremental.IncProjectBuilder.buildChunkIfAffected(IncProjectBuilder.java:702)在 org.jetbrains.jps.incremental.IncProjectBuilder.buildChunks(IncProjectBuilder.java:523)在 org.jetbrains.jps.incremental.IncProjectBuilder.runBuild( IncProjectBuilder.java:314) 在 org.jetbrains.jps.incremental.IncProjectBuilder.build(IncProjectBuilder.java:179) 在 org.jetbrains.jps.cmdline.BuildRunner.runBuild(BuildRunner.java:129) 在 org.jetbrains.jps .cmdline.BuildSession.runBuild(BuildSession.java:220) 在 org.jetbrains.jps.cmdline.BuildSession.run(BuildSession.java:112) 在 org.jetbrains.jps.cmdline.BuildMain\)MyMessageHandler\(1.run(BuildMain. java:132) 在 org.jetbrains.jps.service.impl.SharedThreadPoolImpl\)1.run(SharedThreadPoolImpl.java:41) 在 java.util.concurrent.Executors\(RunnableAdapter.call(Executors.java:471) 在 java.util。并发.FutureTask\)Sync.innerRun(FutureTask.java:334) 在 java.util.concurrent.FutureTask.run(FutureTask.java:166)

提前致谢!

原文由 user2608384 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.6k
2 个回答

转到设置(Mac 上的首选项)-> 编译器-> Java 编译器-> 最大堆大小 (MB),并增加大小,然后重新启动 IntelliJ

原文由 Adam Johns 发布,翻译遵循 CC BY-SA 3.0 许可协议

我今天刚遇到这个问题,在将 File/Settings/Compiler/Java Compiler 和 …/Compiler/Android Compiler 下的堆大小增加一倍/四倍之后,它仍然无法编译。

最终解决我的问题的值是增加称为 Compiler Process Heap Size 的值(我将其加倍但可能没有必要),可以在 File/Settings/Compiler 下找到

这解决了我使用 Intellij 版本 12.1.5(现在最新的)的问题

我也意识到这个线程有点旧……

原文由 Dan M 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题