编译AIR文件303 ERROR问题的解决

环境:Flex Builder 3.02,Flex SDK 3.2,AIR SDK 1.5

编译AIR文件中使用了自定义图标,编译过程中Flex Builder报错如下:

Error creating AIR file:303:Error,……

error303

百思不得其解。因为我分别自定义了 16x16、32x32、48x48、128x128 这4种大小的图标,后两个没有报错,为什么前两个报错呢?

4个图标都使用Fireworks制作,应该也不存在编码问题。

google上搜索了两条相关的问题讨论,未果:

swf文件是可以编译成功的,只是在最后一步AIR打包的时候出错。AIR其实本质就是zip。查看打包前的文件内容,发现icon16和icon32这两个文件并没有被载入进入需要打包的列表中。

建立AIR文件,选择内容

在打包前手工添加这两个文件,打包可以成功。

既然手工添加可以,那为什么在编译的时候,Flex Builder不自动把这两个文件加入资源包中呢?文件名称路径都没有任何错误啊!

忽然想到前几天orphen告诉我,“苍蝇不叮无缝的蛋”,计算机本没有错,如果出错,那一定是我错了。

此时灵光一现,“冲突”二字突然浮现与我的脑海,世上万物此消彼长,因此才有 汉正街大火投诉物业公司 ,若无冲突,怎可体现和谐之美?

想到此处,我茅塞顿开,原来问题还是出于我身!不禁自责不已,深为自己对业余代码民工这个如此有前途之职业之不敬而后悔。想到代码中在AIR窗口图标与任务栏图标中确实引用过这两个图标文件,应该是在最终打包的过程中,由于代码与配置文件两处同时引用这两个文件,造成冲突,导致无法将这两个文件打包。

embedicon16

解决方法很简单,把icon16.png与icon32.png复制并改名即可。我是这么做的:

1<icon>
2  <image16x16>assets/icon1616.png</image16x16>
3  <image32x32>assets/icon3232.png</image32x32>
4  <image48x48>assets/icon48.png</image48x48>
5  <image128x128>assets/icon128.png</image128x128>
6</icon>

kao!白白浪费我2小时……