IntelliJ Idea giving java.lang.OutOfMemoryError:Java堆空间错误,即使在增加堆大小之后

2w2cym1i  于 2023-06-21  发布在  IntelliJ IDEA
关注(0)|答案(6)|浏览(156)

在IntelliJ Idea上编译我的Android项目时,我反复遇到java.lang.OutOfMemoryError: Java heap space错误。
我按照这里的链接增加了我的java堆空间,但这并没有解决问题。有趣的是,有时我的应用程序会编译,而在其他时候,由于Java堆空间错误,应用程序将无法编译。即使我没有对应用程序进行任何更改,它也会有时编译,有时失败。
你知道我该怎么解决这个问题吗?
我正在编译一个android项目,可能是因为我有大量的资源(可绘制的hdpi,xhdpi,xxhdpi,large-hdpi,large-xhdpi,large-xxhdpi)?但话又说回来,就像我说的,它有时编译,有时不编译。我每次尝试编译大约10次,幸运的是它会成功一次。
下面是错误:
内部错误:(java. lang. OutOfMemoryError)Java堆空间java. lang. OutOfMemoryError:Java堆空间效用数组。copyOf(Arrays.java:2271)at com.智力效用io. UnsyncByteArrayOutputStream。write(UnsyncByteArrayOutputStream.java:52)at com.智力效用io.DataOutputStream。write(DataOutputStream.java:34)at java. io.FilterOutputStream。write(FilterOutputStream.java:97)at com.智力效用IOUtil. writeString(IOUtil.java:63)at org.脑子进水了jps.增量储存OneToManyPathsMapping $www.example.com(OneToManyPathsMapping.java:87)at org.脑子进水了jps.增量储存OneToManyPathsMapping $www.example.com(OneToManyPathsMapping.java:84)at org.jetbrains.jps.incremental.storage.AbstractStateStorage$1.append(AbstractStateStorage.java:103)at com.智力效用io. PersistentHashMap。doAppendData(PersistentHashMap.java:371)at com.智力效用io. PersistentHashMap。appendData(PersistentHashMap.java:358)at org.脑子进水了jps.增量储存AbstractStateStorage. appendData(AbstractStateStorage.java:101)at org.脑子进水了jps.增量储存一对多路径Map。appendData(OneToManyPathsMapping.java:50)at org.脑子进水了jps.增量储存源到输出Map实施appendOutput(SourceToOutputMappingImpl.java:50)at org.脑子进水了jps.建筑工人实施BuildOutputConsumerImpl. registerOutputFile(BuildOutputConsumerImpl.java:65)at org.脑子进水了jps.机器人AndroidResourceCachingBuilder。runPngCaching(AndroidResourceCachingBuilder.java:126)at PathCollectionExternalizer.save java:179)在org.脑子进水了jps. cmdline。BuildRunner。runBuild(BuildRunner.java:129)at org.脑子进水了jps. cmdline。BuildSession。runBuild(BuildSession.java:220)at www.example.com(BuildSession.java:112)at org.jetbrains.jps.cmdline.BuildMain$MyMessageHandler$1.run(BuildMain.java:132)at org.脑子进水了jps.服务。实施SharedThreadPoolImpl $www.example.com(SharedThreadPoolImpl.java:41)at java.效用并发Executors $www.example.com(Executors.java:471)at java.效用并发FutureTask $Sync。innerRun(FutureTask.java:334),位于www.example.com(FutureTask.java:166)PathCollectionExternalizer.save (OneToManyPathsMapping.java:84) at org.jetbrains.jps.incremental.storage.AbstractStateStorage$1.append(AbstractStateStorage.java:103) at com.intellij.util.io.PersistentHashMap.doAppendData(PersistentHashMap.java:371) at com.intellij.util.io.PersistentHashMap.appendData(PersistentHashMap.java:358) at org.jetbrains.jps.incremental.storage.AbstractStateStorage.appendData(AbstractStateStorage.java:101) at org.jetbrains.jps.incremental.storage.OneToManyPathsMapping.appendData(OneToManyPathsMapping.java:50) at org.jetbrains.jps.incremental.storage.SourceToOutputMappingImpl.appendOutput(SourceToOutputMappingImpl.java:50) at org.jetbrains.jps.builders.impl.BuildOutputConsumerImpl.registerOutputFile(BuildOutputConsumerImpl.java:65) at org.jetbrains.jps.android.AndroidResourceCachingBuilder.runPngCaching(AndroidResourceCachingBuilder.java:126) at www.example.com (AndroidResourceCachingBuilder.java:48) at org.jetbrains.jps.android.AndroidResourceCachingBuilder.build (AndroidResourceCachingBuilder.java:32) at org.jetbrains.jps.incremental.BuildOperations.buildTarget(BuildOperations.java:100) at org.jetbrains.jps.incremental.IncProjectBuilder.runBuildersForChunk(IncProjectBuilder.java:744) at org.jetbrains.jps.incremental.IncProjectBuilder.buildTargetsChunk(IncProjectBuilder.java:770) at org.jetbrains.jps.incremental.IncProjectBuilder.buildChunkIfAffected(IncProjectBuilder.java:702) at org.jetbrains.jps.incremental.IncProjectBuilder.buildChunks(IncProjectBuilder.java:523) at org.jetbrains.jps.incremental.IncProjectBuilder.runBuild(IncProjectBuilder.java:314) at org.jetbrains.jps.incremental.IncProjectBuilder.build (IncPro jectBuilder.java:179) at org.jetbrains.jps.cmdline.BuildRunner.runBuild(BuildRunner.java:129) at org.jetbrains.jps.cmdline.BuildSession.runBuild(BuildSession.java:220) at org.jetbrains.jps.cmdline.BuildSession.run (BuildSession.java:112) at org.jetbrains.jps.cmdline.BuildMain$MyMessageHandler$1.run(BuildMain.java:132) at org.jetbrains.jps.service.impl.SharedThreadPoolImpl$1.run (SharedThreadPoolImpl.java:41) at java.util.concurrent.Executors$RunnableAdapter.call (Executors.java:471) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) at java.util.concurrent.FutureTask.run (FutureTask.java:166)
先谢谢你了!

rjzwgtxy

rjzwgtxy1#

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

c3frrgcw

c3frrgcw2#

我今天就遇到了这个问题,在文件/设置/编译器/Java编译器和.../编译器/Android编译器下将堆大小增加了一倍/四倍后,它仍然无法编译。
最终解决我的问题的值是增加名为“编译器进程堆大小”的值(我将其加倍,但可能没有必要),该值可以在文件/设置/编译器下找到
这解决了我使用Intellij版本12.1.5(目前最新版本)的问题
我也意识到这条线有点老了...

lkaoscv7

lkaoscv73#

Intellij为您提供了编辑应用程序VM选项的方法。编辑配置,我想,是你所追求的。此设置位于右上角,或者您可以使用shift-control-A“编辑配置”,您应该看到一个对话框,其中一个字段是VM选项。您可以在此处设置特定于应用程序的设置,即-Xmx2048m。

55ooxyrt

55ooxyrt4#

在我的例子中,错误出现在“Maven”部分的“Reload Project”之后。它在“Build”窗口的“Sync”选项卡中抛出OutOfMemoryError
在这种情况下,要增加的正确设置是VM options for importer,您可以在Settings -> Build,Execution,Deployment -> Build Tools -> Maven -> Importing中找到。在我的情况下,它被设置为512 m,这对我的项目来说太慢了,大约有50个模块左右。

wvmv3b1j

wvmv3b1j5#

我增加了堆大小,并重新启动了IntelliJ几次,但 * 它对我来说不起作用 *。
我只是去build菜单,点击rebuild project,一切都和以前一样好

dgtucam1

dgtucam16#

x1c 0d1x这是我的解决方案:

设置->构建、执行、部署->编译器

升级

  • 共享生成进程堆大小
  • 用户本地生成进程堆大小(MB)(覆盖共享大小)

相关问题