title: IntelliJ Idea giving java.lang.OutOfMemoryError: Java heap space error even after increasing heap size
body: <p>I have repeatedly got the <code>java.lang.OutOfMemoryError: Java heap space</code> error when compiling my android project on IntelliJ Idea.</p>
  
  <p>I increased my java heap space by following the link <a href="https://stackoverflow.com/questions/13578062/how-to-increase-ide-memory-limit-in-intellij-idea-on-mac/13581526#13581526">here</a> however that didn't solve the problem. The funny thing is, at times my app will compile, and at other times the app will not compile due to the java heap space error. Even when I have made no changes to the app, it will compile at times and fail at times.</p>
  
  <p>Any idea as to how I can solve this problem?</p>
  
  <p>I am compiling an android project, could it be due to the large amount or resources (drawable hdpi, xhdpi, xxhdpi, large-hdpi, large-xhdpi, large-xxhdpi) that I have? But then again, like I said it compiles at times and at times it doesn't. I'm down to making about 10 attempts to compile each time and luckily it will be successful once.</p>
  
  <p>Here is the error:</p>
  
  <blockquote>
    <p>Internal error: (java.lang.OutOfMemoryError) Java heap space
    java.lang.OutOfMemoryError: Java heap space   at
    java.util.Arrays.copyOf(Arrays.java:2271)     at
    com.intellij.util.io.UnsyncByteArrayOutputStream.write(UnsyncByteArrayOutputStream.java:52)
      at
    com.intellij.util.io.DataOutputStream.write(DataOutputStream.java:34)
      at java.io.FilterOutputStream.write(FilterOutputStream.java:97)     at
    com.intellij.util.io.IOUtil.writeString(IOUtil.java:63)   at
    org.jetbrains.jps.incremental.storage.OneToManyPathsMapping$PathCollectionExternalizer.save(OneToManyPathsMapping.java:87)
      at
    org.jetbrains.jps.incremental.storage.OneToManyPathsMapping$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
    org.jetbrains.jps.android.AndroidResourceCachingBuilder.build(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(IncProjectBuilder.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)</p>
  </blockquote>
  
  <p>Thanks in advance!</p>