2011-02-23 24 views
0

我正在運行ant來編譯Flex應用程序,並且在Windows命令行上運行它時構建會保持失敗。我的團隊中的其他人可以在mac和linux下成功運行相同的版本。MXMLC在Windows中編譯時拋出java.lang.NullExceptionPointer(不在mac或ubuntu中)

這是在命令提示顯示的錯誤:

compile-main: 
[mxmlc] Loading configuration file C:\Program Files (x86)\Adobe\Adobe Flash Builder Burrito\sdks\3.5.0\frameworks\flex-config.xml 
[mxmlc] Error: null 
[mxmlc] 
[mxmlc] java.lang.NullPointerException 
[mxmlc]  at flex2.compiler.CompilerSwcContext.createSource(CompilerSwcContext.java:353) 
[mxmlc]  at flex2.compiler.CompilerSwcContext.getSource(CompilerSwcContext.java:337) 
[mxmlc]  at flex2.compiler.API.findDefinition(API.java:2685) 
[mxmlc]  at flex2.compiler.API.resolveMultiName(API.java:3350) 
[mxmlc]  at flex2.compiler.API.resolveExpression(API.java:3193) 
[mxmlc]  at flex2.compiler.API.batch2(API.java:399) 
[mxmlc]  at flex2.compiler.API.batch(API.java:1117) 
[mxmlc]  at flex2.compiler.API.compile(API.java:1290) 
[mxmlc]  at flex2.compiler.API.compile(API.java:1210) 
[mxmlc]  at flex2.tools.Compiler.mxmlc(Compiler.java:275) 
[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:283) 
[mxmlc]  at flex.ant.FlexTask.execute(FlexTask.java:225) 
[mxmlc]  at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291) 
[mxmlc]  at sun.reflect.GeneratedMethodAccessor68.invoke(Unknown Source) 
[mxmlc]  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
[mxmlc]  at java.lang.reflect.Method.invoke(Method.java:597) 
[mxmlc]  at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106) 
[mxmlc]  at org.apache.tools.ant.Task.perform(Task.java:348) 
[mxmlc]  at org.apache.tools.ant.Target.execute(Target.java:390) 
[mxmlc]  at org.apache.tools.ant.Target.performTasks(Target.java:411) 
[mxmlc]  at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1399) 
[mxmlc]  at org.apache.tools.ant.helper.SingleCheckExecutor.executeTargets(SingleCheckExecutor.java:38) 
[mxmlc]  at org.apache.tools.ant.Project.executeTargets(Project.java:1251) 
[mxmlc]  at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:442) 
[mxmlc]  at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291) 
[mxmlc]  at sun.reflect.GeneratedMethodAccessor68.invoke(Unknown Source) 
[mxmlc]  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
[mxmlc]  at java.lang.reflect.Method.invoke(Method.java:597) 
[mxmlc]  at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106) 
[mxmlc]  at org.apache.tools.ant.Task.perform(Task.java:348) 
[mxmlc]  at org.apache.tools.ant.Target.execute(Target.java:390) 
[mxmlc]  at org.apache.tools.ant.Target.performTasks(Target.java:411) 
[mxmlc]  at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1399) 
[mxmlc]  at org.apache.tools.ant.helper.SingleCheckExecutor.executeTargets(SingleCheckExecutor.java:38) 
[mxmlc]  at org.apache.tools.ant.Project.executeTargets(Project.java:1251) 
[mxmlc]  at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:442) 
[mxmlc]  at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291) 
[mxmlc]  at sun.reflect.GeneratedMethodAccessor68.invoke(Unknown Source) 
[mxmlc]  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
[mxmlc]  at java.lang.reflect.Method.invoke(Method.java:597) 
[mxmlc]  at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106) 
[mxmlc]  at org.apache.tools.ant.Task.perform(Task.java:348) 
[mxmlc]  at org.apache.tools.ant.Target.execute(Target.java:390) 
[mxmlc]  at org.apache.tools.ant.Target.performTasks(Target.java:411) 
[mxmlc]  at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1399) 
[mxmlc]  at org.apache.tools.ant.helper.SingleCheckExecutor.executeTargets(SingleCheckExecutor.java:38) 
[mxmlc]  at org.apache.tools.ant.Project.executeTargets(Project.java:1251) 
[mxmlc]  at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:442) 
[mxmlc]  at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291) 
[mxmlc]  at sun.reflect.GeneratedMethodAccessor68.invoke(Unknown Source) 
[mxmlc]  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
[mxmlc]  at java.lang.reflect.Method.invoke(Method.java:597) 
[mxmlc]  at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106) 
[mxmlc]  at org.apache.tools.ant.Task.perform(Task.java:348) 
[mxmlc]  at org.apache.tools.ant.Target.execute(Target.java:390) 
[mxmlc]  at org.apache.tools.ant.Target.performTasks(Target.java:411) 
[mxmlc]  at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1399) 
[mxmlc]  at org.apache.tools.ant.Project.executeTarget(Project.java:1368) 
[mxmlc]  at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41) 
[mxmlc]  at org.apache.tools.ant.Project.executeTargets(Project.java:1251) 
[mxmlc]  at org.apache.tools.ant.Main.runBuild(Main.java:809) 
[mxmlc]  at org.apache.tools.ant.Main.startAnt(Main.java:217) 
[mxmlc]  at org.apache.tools.ant.launch.Launcher.run(Launcher.java:280) 
[mxmlc]  at org.apache.tools.ant.launch.Launcher.main(Launcher.java:109) 

BUILD FAILED 
D:\workspaces\Adobe Flash Builder Burrito Preview\FlexProjects\build.xml:10: The following error occurred while executing this line: 
D:\workspaces\Adobe Flash Builder Burrito Preview\FlexProjects\AdToolSSP\build.xml:33: The following error occurred while executing this line: 
D:\workspaces\Adobe Flash Builder Burrito Preview\FlexProjects\AdToolSSP\build\build.xml:18: The following error occurred while executing this line: 
D:\workspaces\Adobe Flash Builder Burrito Preview\FlexProjects\AdToolSSP\build\compileproject.xml:39: mxmlc task failed 

Total time: 21 seconds 

這是compileproject.xml構建文件的特定目標:

<target name="compile-main" description="Compila la aplicación principal"> 
    <mxmlc allow-source-path-overlap="${compiler.allow_overlap}" 
      debug="${compiler.debug}" 
      file="${app.main.mxml}" 
      fork="${compiler.fork}" 
      keep-generated-actionscript="${compiler.keep_gen_as}" 
      link-report="${flex.output.dir}/report.xml" 
      locale="${compiler.locale}" 
      maxmemory="256m" 
      optimize="${compiler.optimize}" 
      output="${app.main.swf}" 
      services="${flex.services.dir}/services-config.xml" 
     > 

     <!-- Get default compiler options --> 
     <load-config filename="${FLEX_HOME}/frameworks/flex-config.xml" /> 
     <!-- List of path elements that form the roots of ActionScript class hierarchies --> 
     <source-path path-element="${FLEX_HOME}/frameworks" /> 
     <!-- Path to the locales --> 
     <source-path path-element="${flex.resources.dir}/locale/{locale}" /> 
     <!-- List of SWC files or directories that contain SWC files --> 
     <compiler.library-path dir="${flex.libs.dir}" append="true"> 
      <include name="**/as3-signals-v0.6.swc" /> 
      <include name="**/datavisualization_rb.swc" /> 
      <include name="**/datavisualization.swc" /> 
      <include name="**/GenAocCairngorm.swc" /> 
      <include name="**/GenAocLib.swc" /> 
     </compiler.library-path> 
     <compiler.library-path dir="${flex.src.dir}/assets" append="true"> 
      <include name="**/*.swc" /> 
     </compiler.library-path> 

    </mxmlc> 
</target> 

所有令牌被在相應build.properties設定並過濾.properties文件(如前所述,它在mac和linux下完美編譯)。

Windows版本是7 Ultimate,FLEX_HOME被設置爲Flex SDK 3.5(Adobe Flash Builder Burrito附帶的3.5.0.12683版本)的環境變量。 $ {compiler.fork}設置爲false,以避免SDK和源文件位於不同邏輯驅動器中的問題。

任何線索(在所有)將不勝感激!

+0

似乎問題出現在其中一個SWC中,請嘗試逐個刪除它們。 –

+0

謝謝!你指出我正確的方向!仍然在尋找,但它與GenAocCairngorm.swc有關(它由ant build中的前一步在該文件夾中生成並複製)。它可能與該庫項目中的區域設置文件有關。 最好的問候,並再次感謝;) –

回答

0

也許這是「捲餅預覽」的問題?您可以將其作爲http://bugs.adobe.com的錯誤提交。

+0

謝謝飛濺! 我仔細檢查過,以防萬一,但這不應該(也不是)問題。我直接從http://opensource.adobe.com/wiki/display/flexsdk/Download+Flex+3下載SDK(我嘗試了3.6每晚構建,甚至),並修改了FLEX_HOME標記以指向此SDK(和而不是Burrito預覽版中的那個)。 也沒有權限問題(我將它全部移到用戶文檔文件夾中)。 並僅將語言環境參數更改爲en_US(儘管手動編輯的es_ES和pt_BR如果使用FB編譯,則無縫工作)。 Still,same java.lang.NullPointerException。 –