Flash ANE打包

一.打包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

打包的時候可能遇到下面的錯誤
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文件的開發可參考其它詳細教程

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章