一.打包ANE需要以下6个(组)文件
1. ActionScript扩展库(*.swc)
flash builder需要在编译器附带参数中加入“-swf-version 13”,否则打包ane时会出现Invalid swc file.The extension NameSpace requires the swf verison to be 13 or lower
2. 本机扩展库(*.jar)
3. 本机扩展的描述性文件(extension.xml)
<extension xmlns="http://ns.adobe.com/air/extension/2.5"> <id>com.lang.MyAneExtension</id><!-- ane本机扩展库的id --> <versionNumber>1.0</versionNumber><!-- 版本号 --> <platforms> <platform name="Android-ARM"> <applicationDeployment> <nativeLibrary>MyAneExtension.jar</nativeLibrary><!-- jar文件名 --> <initializer>com.lang.MyExtension</initializer><!-- java扩展库入口类 --> <finalizer>com.lang.MyExtension</finalizer><!-- java扩展库入口类结束器,结束时调用此类的dispose方法。如果没有要销毁的内容可以留空。 --> </applicationDeployment> </platform> </platforms> </extension>
4. 从swc文件(第1个文件)中解压得出swf文件 (library.swf)
swc文件中包含library.swf和catalog.xml两个文件,这里我们只使用library.swf
5. 签名文件(*.p12)
正式文件需要花钱买,可以使用Flash或FlashBuilder生成开发版的签名文件
6. adt工具
adt有很多功能,我们这里用到它打包ANE的功能,这个工具在AIR或Flex的SDK中。如果安装了flash builder,里面有sdk,比如我的sdk在E:\Program Files\Adobe\Adobe Flash Builder 4.7\eclipse\plugins\com.adobe.flash.compiler_4.7.0.349722\AIRSDK和E:\Program Files\Adobe\Adobe Flash Builder 4.7\sdks\4.6.0而adt工具就在其下面的bin文件夹中
我们把必须的1-5文件放在一个文件中,如下图
二.开始执行打包的程序
运行命令行(开始-运行-输入cmd 或 Win+R-输入cmd)并将其路径设置到该文件夹路径上,然后键入:
adt工具路径 -package -storetype pkcs12 -keystore .p12文件名称.p12 -storepass .p12文件的密码 -target ane 需要生成的ane的名称.ane extension.xml -swc swc名称.swc -platform 平台名称 library.swf 本机扩展库
其中-platform有以下选项:
Android-ARM.(居说这里要有".",没有点也打包成功了)
iPhone-ARM
MacOS-x86
Windows-x86
下面是一个完整的例子的写法:
E:\Program" "Files\Adobe\Adobe" "Flash" "Builder" "4.7\eclipse\plugins\com.adobe.flash.compiler_4.7.0.349722\AIRSDK\bin\adt -package -storetype pkcs12 -keystore lang.p12 -storepass 123 -target ane MyAne.ane extension.xml -swc MyAneExtensionAS.swc -platform Android-ARM. library.swf MyAneExtensionJava.jar
E:\Program" "Files\Adobe\Adobe" "Flash" "Builder" "4.7\eclipse\plugins\com.adobe.flash.compiler_4.7.0.349722\AIRSDK\bin\adt -package -storetype pkcs12 -keystore lang.p12 -storepass 123 -target ane MyAne.ane extension.xml -swc MyAneExtensionAS.swc -platform Android-ARM. library.swf MyAneExtensionJava.jar
打包的时候可能遇到下面的错误
1、Java不是内部或外部命令,也不是批处理文件
是因为没有安装java运行时环境或adt文件路径不对。
2、Invalid swc file.The extension NameSpace requires the swf verison to be 13 or lower
flash builder需要在编译器附带参数中加入“-swf-version 13”。方法:打开flash builder-右击扩展ane的库项目-选择“属性”-打开项目属性,如下图-选择ActionScript库编译器-在附加的编译器参数中加入如下参数![]()
3、Could not generate timestamp: handshake alert: unrecognized_name
因为要访问国外的服务器获取时间戳,但又访问不到,访问不到的原因你懂的。解决办法:在后面加入 -tsa none,不去获取时间戳,如...-package -tsa none -storetype pkcs12 ...。
这里只说明如何打包ANE,jar和swc文件的开发可参考其它详细教程