我正在使用Adobe AIR创建一些Flash游戏。我尝试将其编译成.ipa文件(在iPad设备上运行)。
该项目并不大,但也不小(它使用6个swc库和许多未预编译的代码)。我尝试使用两种方法用Flash FDT 5.5打包我的游戏:
包装失败!包装错误信息:捡起来 JAVA_TOOL_OPTIONS:-Xmx3072M线程“main”中的异常 java.lang.OutOfMemoryError:Java堆空间at java.util.TreeMap.put(未知来源)at adobe.abc.Algorithms $ SetMap.get(Algorithms.java:225)at adobe.abc.Algorithms.addUses(Algorithms.java:164)at adobe.abc.Algorithms.findUses(Algorithms.java:186)at adobe.abc.GlobalOptimizer.cp(GlobalOptimizer.java:9381)at adobe.abc.GlobalOptimizer.dce(GlobalOptimizer.java:9627)at adobe.abc.GlobalOptimizer.sccp(GlobalOptimizer.java:4638)at adobe.abc.GlobalOptimizer.optimize(GlobalOptimizer.java:3514)at at adobe.abc.GlobalOptimizer.optimize(GlobalOptimizer.java:2215)at at adobe.abc.LLVMEmitter.optimizesABCs(LLVMEmitter.java:527)at at adobe.abc.LLVMEmitter.generateBitcode(LLVMEmitter.java:337)at at com.adobe.air.ipa.AOTCompiler.convertAbcToLlvmBitcodeImpl(AOTCompiler.java:510) 在com.adobe.air.ipa.BitcodeGenerator.main(BitcodeGenerator.java:80) 拿起JAVA_TOOL_OPTIONS:-Xmx3072M编译失败了 执行:ADT拿起JAVA_TOOL_OPTIONS:-Xmx3072M拿起 JAVA_TOOL_OPTIONS:-Xmx3072M
我知道这是Eclipse devlopment的常见问题。我试图以标准方式解决这个问题 - >增加java堆大小。正如你所看到的那样,我已经设定了足够的3072M。
当我尝试编译较小的项目时,它工作正常。我不知道现在要做什么:(。有什么想法吗?
答案 0 :(得分:1)
经过深入调查,我找到了解决方案。这不是由于任何环境配置,但正如@Alan所说,Adobe的打包器遇到了问题。正如我想的那样,它是在“优化”阶段遇到问题。
这是一个非常有用的论坛主题:http://forums.adobe.com/message/4445973#4445973
我的项目是使用NAPE物理引擎。正如我在那里发现的那样:http://deltaluca.me.uk/forum/index.php/m/2148/0ce4c49cc2c79979154c56737d2978a4/人遇到了编译时的问题。在我的情况下,编译时间是无限的;),以java的内存不足异常结束。解决方案是使用最新的NAPE构建,作者稍微优化了一下。这种“小优化”使我的项目有效。
总结一下:如果您遇到类似问题,请检查您的代码。尝试找到一些巨大的功能/方法,Adobe的打包器很难实现最佳化。
答案 1 :(得分:0)
-Xmx3072M
不是有效的Eclipse参数。将“eclipse.ini”设置和其他Java设置恢复为默认设置,它应该可以正常工作。您可能将其设置得太高,以至于JVM的其他部分内存不足。
从堆栈跟踪可以看出,它不是Eclipse或FDT问题。 Adobe的打包器遇到了问题。如果默认设置仍然不起作用,那么请参阅为Java提供更多内存。如果这不起作用,请慢慢增加Eclipse的内存以查看它是否有效。