我在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\u 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论坛上发帖,也许可以在那里获得一些开发人员的帮助。如果他们回应,我会在这里回答
您可以从IntelliJ菜单栏添加此设置,转到帮助
您可以使用Xms
# custom IntelliJ IDEA VM options
-Xms750m
-Xmx2048m
-XX:ReservedCodeCacheSize=240m
-XX:+UseCompressedOops
要使更改生效,必须重新启动IntelliJ
另一种选择是在运行/调试配置
选项中设置大小,为此转到菜单栏运行
您可以在此处进行更改(Actionscript
我使用的是64位Ubuntu和java VM64位版本。 我有8GB内存。 我无法将java堆大小更改为4096M,甚至2048M也不行。 我试过这些东西: 产出: x86_64 OpenJDK 64位服务器VM(构建11.0.4+11-post-ubuntu-1ubuntu218.04.3,混合模式,共享) 当我试图更改堆大小时: 输出
问题内容: 我正在使用具有8 GB RAM的Windows 2003服务器(64位)。如何增加堆内存的最大值?我正在使用该标志将堆大小增加到1500 Mb。是否可以将堆内存增加到物理内存(6 GB堆)的75%? 问题答案: 你可以在32位系统上增加到4GB。如果你使用的是64位系统,则可以更高。如果你选择的错误,不用担心,如果你在32位系统上要求5g,则Java会抱怨一个无效的值并退出。 正如其他
我想分配大约1GB的堆大小,但我似乎无法弄清楚。 如何做到这一点?
如果我在VScode中启动一个新的集成终端,它似乎不会加载我的.bashrc文件。一旦终端打开,我就可以获取~/.bashrc,然后出现自定义设置。我的问题似乎是这个问题的重复,但是对于Windows而不是osx。 是否可以让 vscode 在启动集成终端的新实例时自动获取我的 .bashrc 或 .bash_profile? 到目前为止,我已经尝试了以下方法: 我通过设置 我尝试使用“但是文档中
问题内容: 我正在尝试增加Java在weka中的堆大小,这会不断崩溃。我使用了建议的行: 但出现以下错误: 我不确定这是什么意思。有什么建议? 问题答案: 我发现实际的问题在中的文件中。我用记事本打开了文件,在文件的中间有一行。 我将行更改为read ,保存了文件并重新加载了weka,这解决了我的问题。 我不确定这是否是正确的方法,但这对我有用。
问题内容: 如何增加Java中的堆大小? 问题答案: 你可以在32位系统上增加到4GB。如果你使用的是64位系统,则可以更高。如果你选择不正确,无需担心,如果你在32位系统上要求5g,则Java会抱怨值无效并退出。 正如其他人发布的那样,使用cmd-line标志-例如 你可以通过键入java -X来获得完整列表(或者无论如何都接近完整列表)。 使用命令行选项可以增加JVM分配的堆大小。这里有3个选