2010-05-22 19 views
6

मैं एक फ्लेक्स प्रोजेक्ट के लिए कोड के एक सेट में बदलाव कर रहा हूं जिसे मैंने नहीं लिखा था और चींटी कार्यों का उपयोग करके संकलित करने के लिए स्थापित किया गया था। मुझे लगता है कि कोडबेज अंतिम चेकइन पर स्थिर था लेकिन एमएक्सएमएलसी और चींटी (नीचे स्टैक ट्रेस देखें) का उपयोग करके एक परियोजना बनाने की कोशिश करते समय मैं स्मृति समस्याओं में भाग रहा हूं। इससे पहले, मैं बस स्मृति त्रुटि से बाहर हो रहा था। मैंने एक अलग मशीन का उपयोग करने की कोशिश की और इसे और अधिक वर्बोज अपवाद मिला (छवि fetcher के साथ समस्याओं सहित)। मैंने एसडीके के विभिन्न संस्करणों का उपयोग करने की कोशिश की है, मैंने <mxmlc> टैग को <exec executable="mxmlc"> के साथ कोई किस्मत के साथ बदलने की कोशिश की है। यहां मेरा जावा संस्करण है जिसके साथ इसका कोई संबंध नहीं है:एमएक्सएमएलसी चींटी कार्य परिणाम java.lang.OutOFMemoryError

» java -version 
java version "1.6.0_20" 
Java(TM) SE Runtime Environment (build 1.6.0_20-b02-279-10M3065) 
Java HotSpot(TM) 64-Bit Server VM (build 16.3-b01-279, mixed mode) 

किसी भी मदद की सराहना की जाएगी। धन्यवाद!

Buildfile: build.xml 

compileSWF: 
    [echo] Compiling main.swf... 
    [mxmlc] Loading configuration file /Applications/Adobe Flash Builder 4 Plug-in/sdks/4.0.0beta2/frameworks/flex-config.xml 
    [mxmlc] Exception in thread "Image Fetcher 0" java.lang.OutOfMemoryError: Java heap space 
    [mxmlc]  at java.awt.image.PixelGrabber.setDimensions(PixelGrabber.java:360) 
    [mxmlc]  at sun.awt.image.ImageDecoder.setDimensions(ImageDecoder.java:62) 
    [mxmlc]  at sun.awt.image.JPEGImageDecoder.sendHeaderInfo(JPEGImageDecoder.java:71) 
    [mxmlc]  at sun.awt.image.JPEGImageDecoder.readImage(Native Method) 
    [mxmlc]  at sun.awt.image.JPEGImageDecoder.produceImage(JPEGImageDecoder.java:119) 
    [mxmlc]  at sun.awt.image.InputStreamImageSource.doFetch(InputStreamImageSource.java:246) 
    [mxmlc]  at sun.awt.image.ImageFetcher.fetchloop(ImageFetcher.java:172) 
    [mxmlc]  at sun.awt.image.ImageFetcher.run(ImageFetcher.java:136) 
    [mxmlc] /src/com/amtrak/components/map/MapAsset.mxml: Error: exception during transcoding: Failed to grab pixels for image /src/assets/embed_assets/images/zoomed_map_wide.jpg 
    [mxmlc] 
    [mxmlc] /src/com/amtrak/components/map/MapAsset.mxml: Error: Unable to transcode /assets/embed_assets/images/zoomed_map_wide.jpg. 
    [mxmlc] 
    [mxmlc] Error: Java heap space 
    [mxmlc] 
    [mxmlc] java.lang.OutOfMemoryError: Java heap space 
    [mxmlc]  at java.util.ArrayList.<init>(ArrayList.java:112) 
    [mxmlc]  at macromedia.asc.util.ObjectList.<init>(ObjectList.java:30) 
    [mxmlc]  at macromedia.asc.parser.ArgumentListNode.<init>(ArgumentListNode.java:30) 
    [mxmlc]  at macromedia.asc.parser.NodeFactory.argumentList(NodeFactory.java:116) 
    [mxmlc]  at macromedia.asc.parser.NodeFactory.argumentList(NodeFactory.java:97) 
    [mxmlc]  at flex2.compiler.mxml.ImplementationGenerator.generateBinding(ImplementationGenerator.java:563) 
    [mxmlc]  at flex2.compiler.mxml.ImplementationGenerator.generateBindingsSetupFunction(ImplementationGenerator.java:864) 
    [mxmlc]  at flex2.compiler.mxml.ImplementationGenerator.generateBindingsSetup(ImplementationGenerator.java:813) 
    [mxmlc]  at flex2.compiler.mxml.ImplementationGenerator.generateInitializerSupportDefs(ImplementationGenerator.java:1813) 
    [mxmlc]  at flex2.compiler.mxml.ImplementationGenerator.generateClassDefinition(ImplementationGenerator.java:1005) 
    [mxmlc]  at flex2.compiler.mxml.ImplementationGenerator.<init>(ImplementationGenerator.java:201) 
    [mxmlc]  at flex2.compiler.mxml.ImplementationCompiler.generateImplementationAST(ImplementationCompiler.java:498) 
    [mxmlc]  at flex2.compiler.mxml.ImplementationCompiler.parse1(ImplementationCompiler.java:196) 
    [mxmlc]  at flex2.compiler.mxml.MxmlCompiler.parse1(MxmlCompiler.java:168) 
    [mxmlc]  at flex2.compiler.CompilerAPI.parse1(CompilerAPI.java:2851) 
    [mxmlc]  at flex2.compiler.CompilerAPI.parse1(CompilerAPI.java:2804) 
    [mxmlc]  at flex2.compiler.CompilerAPI.batch2(CompilerAPI.java:446) 
    [mxmlc]  at flex2.compiler.CompilerAPI.batch(CompilerAPI.java:1274) 
    [mxmlc]  at flex2.compiler.CompilerAPI.compile(CompilerAPI.java:1488) 
    [mxmlc]  at flex2.compiler.CompilerAPI.compile(CompilerAPI.java:1375) 
    [mxmlc]  at flex2.tools.Mxmlc.mxmlc(Mxmlc.java:282) 
    [mxmlc]  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    [mxmlc]  at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
    [mxmlc]  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
    [mxmlc]  at java.lang.reflect.Method.invoke(Method.java:597) 
    [mxmlc]  at flex.ant.FlexTask.executeInProcess(FlexTask.java:280) 
    [mxmlc]  at flex.ant.FlexTask.execute(FlexTask.java:225) 
    [mxmlc]  at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288) 
    [mxmlc]  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    [mxmlc]  at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
    [mxmlc]  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
    [mxmlc]  at java.lang.reflect.Method.invoke(Method.java:597) 

BUILD FAILED 
/src/build.xml:49: mxmlc task failed 

उत्तर

7

जावा-वीएम अधिक ढेर-स्थान दें, उदा।

java -Xmx1024M 

या जो भी आपको चाहिए :-)। लिनक्स (और शायद अन्य Unixes) के तहत, कि चींटी द्विआधारी साथ चाल कर सकता है:

ANT_OPTS="-Xmx1024M" ant 
+0

धन्यवाद होते हैं में है। ऐसा लगता है कि काम किया लेकिन केवल तभी जब मैंने इसे 4 जीबी तक पहुंचा दिया! –

1

मैं compc के साथ एक इसी तरह के मुद्दों था। एकमात्र चीज जो मेरी मदद करने लगती थी, फोर्क = "सच" maxmemory = "256m"

+0

आपने कहां से ** 256m ** निर्धारित किया था? –

4

हम एक व्यक्तिगत मशीन (फ्लेक्स बिल्डर के बिना) पर एक फ्लेक्स ऐप बनाने के लिए चींटी का उपयोग कर रहे थे और एकमात्र तरीका जिसने हल किया ढेर अंतरिक्ष त्रुटि build.xml में maxmemory बढ़ाने के लिए था।

ant_opts और जावा कॉन्फ़िगरेशन सेट करना हमारे लिए काम नहीं करता है।

<mxmlc file="${src-cp}/CP_main.mxml" output="${bin-dir}/CP/CP_main.swf" 
    show-unused-type-selector-warnings="false" 
    static-link-runtime-shared-libraries="true" fork="true" maxmemory="1024m"> 

अधिक जानकारी http://tipila.com/tips/java-heap-error-when-building-flex-application-with-ant

+0

क्यों ** शो-अप्रयुक्त-प्रकार-चयनकर्ता-चेतावनियां ** 'false' है? –

0

आप फ़्लैश बिल्डर के भीतर से एक चींटी कार्य लॉन्च कर रहे हैं, तो Preferences > Java > Installed JREs > Edit के पास जाकर डिफ़ॉल्ट वीएम तर्क, उदा तहत जावा के लिए उपयुक्त कमांड लाइन तर्क जोड़ने -Xmx4096M

0

मेरे मामले में मैं कई अलग-अलग एसडब्ल्यूएफ संकलित कर रहा था जब मैंने 5 वां जोड़ा जो मुझे स्मृति त्रुटि मिली। जिस तरह से मैंने हल किया वह एक हैक के साथ था। मैंने निष्पादित चींटी कार्य का उपयोग कर संकलन कर रहे प्रत्येक एसएफएफ के लिए नए जेवीएम तैयार किए।

<target name="main"> 
      <exec executable="ant" os="Mac OS X"> 
       <arg value="antTargetCompileSwf1"/> 
      </exec> 
      <exec executable="ant" os="Windows 2000,Windows NT,Windows XP,Windows 8"> 
       <arg value="antTargetCompileSwf1"/> 
      </exec> 
      <exec executable="ant" os="Mac OS X"> 
       <arg value="antTargetCompileSwf2"/> 
      </exec> 
      <exec executable="ant" os="Windows 2000,Windows NT,Windows XP,Windows 8"> 
       <arg value="antTargetCompileSwf2"/> 
      </exec> 
     </target> 

यह एक उदाहरण है जहाँ मैं प्रत्येक लक्ष्य antTargetCompileSwf2 संदर्भ में एक ही निर्माण फ़ाइल जो mxmlc कार्य है कि मूल रूप स्मृति त्रुटि फेंक दिया गया था