解决ANT编译Flash时的 Error Loading : jvm.dll

调用Ant编译时,执行mxmlc出错,但是Ant并未捕获到错误的真正内容,于是报告了默认错误——“Error loading : jvml.dll。其实这个错误并未包含真正的错误信息,从这个错误出发无法找到问题所在。我通过逐步排查发现问题处在mxmlc编译上,真正的错误提示是找不到“mvcr100.dll”这个文件,下载复制到指定位置后,就正常了。

ActionScript 3

新工作的第一个功能即将开发完毕,但是在发布的时候遇到点问题。因为工程浩大,版本更迭的编译发布是个严峻问题,这边使用Ant来解决 。其他人都用FDT做开发,Eclipse本身就有Ant插件,所以用起来自然而然,没遇到过什么问题。而我用FD,FD不支持类似的插件,所以必须用命令行进行编译。

于是问题来了,当我下载Ant并运行时,报错:

Error loading : C:\Program Files\Java\jre6\bin\client\jvm.dll

马上求助于google,倒是查到不少解答,但没有一个能解决我的问题。其中有个听起来挺靠谱,说是系统、mxmlc、jre非同一个版本(或同一个bit数),结果经验证也不行。于是乎从头学起,把项目使用的build.xml拆开一步一步执行,终于发现,其实是mxmlc编译时出了问题。直接在命令行里运行mxmlc,系统提示,找不到“msvcr100.dll”。

再次Google,发现因为少这个文件出问题的人还挺多,于是下载之,然后放到windows\SysWOW64目录下(为防万一我还往system下放了一份,不过没有验证这样做是否多余),再次运行Ant编译,成功。

于是我得出以下结论:

调用Ant编译时,执行mxmlc出错,但是Ant并未捕获到错误的真正内容,于是报告了默认错误——“Error loading : jvml.dll。其实这个错误并未包含真正的错误信息,从这个错误出发也无法找到问题所在。

但是,通过FD自带的编译批处理功能,是可以正常编译的,不会报什么缺少dll的错。为什么通过Ant编译会出错,为什么系统会又缺少msvcr100.dll,我还不得而知。总之吧,问题解决了,以后出问题再说吧。

最后,放上msvcr100.dll下载,方便大家。 下载地址