2013-07-30 32 views
13

Tôi đã nhiều lần gặp lỗi java.lang.OutOfMemoryError: Java heap space khi biên dịch dự án Android của tôi trên IntelliJ Idea.IntelliJ Idea đưa ra java.lang.OutOfMemoryError: lỗi vùng heap Java ngay cả sau khi tăng kích thước heap

Tôi đã tăng không gian vùng java của mình bằng cách đi theo liên kết here tuy nhiên điều đó không giải quyết được vấn đề. Điều thú vị là, đôi khi ứng dụng của tôi sẽ biên dịch, và vào những lúc khác ứng dụng sẽ không biên dịch do lỗi không gian java heap. Ngay cả khi tôi không thực hiện thay đổi nào đối với ứng dụng, nó sẽ biên dịch vào những thời điểm và không thành công.

Bất kỳ ý tưởng nào về cách tôi có thể giải quyết vấn đề này?

Tôi đang biên dịch một dự án android, có thể là do số lượng lớn hoặc tài nguyên (hdpi có thể vẽ, xhdpi, xxhdpi, hdpi lớn, xhdpi lớn, xxhdpi lớn) mà tôi có? Nhưng sau đó một lần nữa, như tôi đã nói nó biên dịch vào những thời điểm và đôi khi nó không. Tôi sẽ giảm khoảng 10 lần để biên dịch mỗi lần và may mắn là nó sẽ thành công một lần.

Dưới đây là lỗi:

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)

Cảm ơn trước!

Trả lời

16

Đến Cài đặt (Preferences trên Mac) -> Compiler -> Java Compiler -> kích thước heap tối đa (MB), và tăng kích thước, sau đó khởi động lại IntelliJ

+2

Nếu bạn sử dụng Android Studio tùy chọn này trong phần "Trình biên dịch Android". – TARAKAN

+0

Cài đặt đã được di chuyển sang 'Compiler' ->' Kích thước heap xây dựng (MB) 'trong IntelliJ 17.2.3 - https://stackoverflow.com/a/8581537/7193940 – MagicLegend

10

Tôi chỉ có vấn đề này ngày hôm nay, và sau khi tăng gấp đôi/tăng gấp bốn lần kích thước heap trong File/Settings/Compiler/Java Compiler và .../Compiler/Android Compiler và nó vẫn không biên dịch được.

giá trị mà cuối cùng cố định vấn đề của tôi đã được tăng giá trị gọi là trình biên dịch Process Heap Kích thước (I tăng gấp đôi nó nhưng mà có lẽ là không cần thiết), có thể được tìm thấy dưới File/Settings/Compiler

này đã giải quyết được vấn đề đối với tôi sử dụng Intellij phiên bản 12.1.5 (mới nhất ngay bây giờ)

tôi cũng nhận ra rằng chủ đề này là một chút cũ ...

+0

lý do tôi đề cập đến trình biên dịch java và trình biên dịch android là rằng nó có thể là cần thiết để tăng tất cả chúng, tôi đã không kiểm tra thực tế đó –

2

Intellij cung cấp cho bạn với các phương tiện để chỉnh sửa ứng dụng VM Options. Chỉnh sửa cấu hình, tôi nghĩ, là những gì bạn đang sau. Thiết lập này nằm ở góc trên bên phải, hoặc cách khác bạn có thể sử dụng shift-control-A "Edit configuration", bạn sẽ thấy một hộp thoại và một trong các trường là VM Options. Tại đây, bạn có thể đặt cài đặt dành riêng cho ứng dụng của mình, tức là -Xmx2048m.

Các vấn đề liên quan