java - 似乎无法增加 Windows 中 intellij 上的 java 堆大小

标签 java intellij-idea heap-memory

我正在 Intellij 2017 中开发一个 Android Flex/AIR 应用程序。当我尝试在手机上调试它时,我不断收到内存不足错误。

dx tool failed:
UNEXPECTED TOP-LEVEL ERROR:
java.lang.OutOfMemoryError: Java heap space
    at java.util.BitSet.initWords(BitSet.java:166)
    at java.util.BitSet.<init>(BitSet.java:161)
    at com.android.dx.ssa.SsaBasicBlock.<init>(SsaBasicBlock.java:128)
    at com.android.dx.ssa.SsaBasicBlock.newFromRop(SsaBasicBlock.java:147)
    at com.android.dx.ssa.SsaMethod.convertRopToSsaBlocks(SsaMethod.java:173)
    at com.android.dx.ssa.SsaMethod.newFromRopMethod(SsaMethod.java:103)
    at com.android.dx.ssa.SsaConverter.convertToSsaMethod(SsaConverter.java:44)
    at com.android.dx.ssa.Optimizer.optimize(Optimizer.java:98)
    at com.android.dx.ssa.Optimizer.optimize(Optimizer.java:72)
    at com.android.dx.dex.cf.CfTranslator.processMethods(CfTranslator.java:297)
    at com.android.dx.dex.cf.CfTranslator.translate0(CfTranslator.java:137)
    at com.android.dx.dex.cf.CfTranslator.translate(CfTranslator.java:93)
    at com.android.dx.command.dexer.Main.processClass(Main.java:734)
    at com.android.dx.command.dexer.Main.processFileBytes(Main.java:678)
    at com.android.dx.command.dexer.Main.access$300(Main.java:83)
    at com.android.dx.command.dexer.Main$1.processFileBytes(Main.java:607)
    at com.android.dx.cf.direct.ClassPathOpener.processArchive(ClassPathOpener.java:284)
    at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:166)
    at com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:144)
    at com.android.dx.command.dexer.Main.processOne(Main.java:637)
    at com.android.dx.command.dexer.Main.processAllFiles(Main.java:511)
    at com.android.dx.command.dexer.Main.runMonoDex(Main.java:281)
    at com.android.dx.command.dexer.Main.run(Main.java:247)
    at com.android.dx.command.dexer.Main.main(Main.java:215)
    at com.android.dx.command.Main.main(Main.java:106)

它显示了正在使用的命令:

DT command line: D:\Program Files\JetBrains\IntelliJ IDEA 2017.1.2\jre64\bin\java.exe .... ... -Xmx512m -jar ... ... 

删除了大部分,但它显示它使用了 512m 的内存。我已进入编译器设置并将“构建进程堆大小”选项设置为 2056,但这没有帮助。我还添加了值为“-Xms128 -Xmx2056m”的 JAVA_OPTS 变量

我不确定 Intellij 在哪里获取该设置来更改它。

感谢任何帮助,谢谢

编辑

这是运行的原始命令,无论我尝试了什么,它总是显示 -Xmx512m

D:\<path_to_intellij>\java.exe -Dapplication.home=D:\<path_to_flex_sdk> -Dfile.encoding=UTF-8 -Djava.awt.headless=true -Duser.language=en -Duser.region=en -Xmx512m -jar D:\<path_to_flex_sdk>\lib\adt.jar -package -target apk-debug -listen 7936 -storetype PKCS12 -keystore D:\<path_to_key_file> -storepass <password> D:\<output_path>\GROL.apk

编辑2

如果我采用 Intellij IDEA 给出的命令并在命令行上手动运行它并将 512 更改为更高的值,它就可以工作。 IntelliJ 中似乎没有针对此特定操作的设置。我必须在 IntelliJ 论坛上发帖,也许可以在那里获得一些开发帮助。如果他们回复,我会在这里回复

最佳答案

您可以在此处更改它(Actionscript 和 Flex 编译器堆大小):

flex heap

关于java - 似乎无法增加 Windows 中 intellij 上的 java 堆大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44663847/

相关文章:

build - IntelliJ编译多模块项目

java - 图像和数组存储中的 "java.lang.OutOfMemoryError: Java heap space"

java - 将包内容读入类数组中

java - Jsp/Servlet Hello World 与 JBoss

java - GSON : custom object deserialization

ubuntu - Intellij IDEA 许可证激活(SSLHandshakeException)

google-chrome - Chrome 堆分析器中对象标题的黄色背景意味着什么?

c++ - 如果在堆上创建 vector ,是否意味着我可以从任何其他函数访问它?怎么样?

java - 等待用户许可继续

java - Log4j2 自定义字段套接字附加器