flash builder编译报错

发生了错误,请参阅日志文件。

无法生成swf文件,看工作空间下的log文件发现如下错误

Uncaught exception in compiler

java.lang.IllegalArgumentException: Comparison method violates its general contract!
        at java.util.TimSort.mergeHi(Unknown Source)
        at java.util.TimSort.mergeAt(Unknown Source)
        at java.util.TimSort.mergeCollapse(Unknown Source)
        at java.util.TimSort.sort(Unknown Source)
        at java.util.Arrays.sort(Unknown Source)
        at flex2.compiler.swc.SwcGroup.updateMaps(SwcGroup.java:279)
        at flex2.compiler.swc.SwcGroup.<init>(SwcGroup.java:65)
        at flex2.compiler.swc.SwcCache.getSwcGroup(SwcCache.java:107)
        at flex2.compiler.swc.SwcCache.getSwcGroup(SwcCache.java:89)
        at flex2.compiler.CompilerSwcContext.load(CompilerSwcContext.java:92)
        at flex2.tools.oem.Application.recompile(Application.java:1169)
        at flex2.tools.oem.Application.compile(Application.java:893)
        at flex2.tools.flexbuilder.BuilderApplication.compile(BuilderApplication.java:367)
        at com.adobe.flexbuilder.multisdk.compiler.internal.ASApplicationBuilder$MyBuilder.mybuild(ASApplicationBuilder.java:309)
        at com.adobe.flexbuilder.multisdk.compiler.internal.ASApplicationBuilder.build(ASApplicationBuilder.java:128)
        at com.adobe.flexbuilder.multisdk.compiler.internal.ASBuilder.build(ASBuilder.java:203)
        at com.adobe.flexbuilder.multisdk.compiler.internal.ASItemBuilder.build(ASItemBuilder.java:93)
        at com.adobe.flexbuilder.project.compiler.internal.FlexProjectBuilder.buildItem(FlexProjectBuilder.java:708)
        at com.adobe.flexbuilder.project.compiler.internal.FlexProjectBuilder.build(FlexProjectBuilder.java:412)
        at com.adobe.flexbuilder.project.compiler.internal.FlexIncrementalBuilder.build(FlexIncrementalBuilder.java:171)
        at org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:728)
        at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
        at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:199)
        at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:239)
        at org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:292)
        at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
        at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:295)
        at org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:351)
        at org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:374)
        at org.eclipse.core.internal.events.AutoBuildJob.doBuild(AutoBuildJob.java:143)
        at org.eclipse.core.internal.events.AutoBuildJob.run(AutoBuildJob.java:241)
        at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54) 

这个报错是jdk版本兼容问题,可以更换jdk版本或者增加下面语句到根目录下的配置文件

"-Djava.util.Arrays.useLegacyMergeSort=true"

原文地址:https://www.cnblogs.com/xbglbc/p/6433720.html