flash air java_Flash Air 打包安卓 ane

工具:

1.flash builder

2.adt打包工具

3.数字证书

一. 创建 jar 文件

1. 打开flash builder, 新建一个java 项目。

2.点击项目属性,选择Java构建路径,选择库,然后添加外部JAR,选择路径,添加FlashRuntimeExtension.jar

4126738.html

3.在项目src文件下建一个包,包名自定,然后在这个包下建3个java类。

4126738.html

各java代码如下:

Extension.java类:

1 package com.three;2 import com.adobe.fre.*;3

4 //Extension这个类是AS与JAVA交互的最基础的入口

5 public class Extension implementsFREExtension {6

7

8 @Override9 publicFREContext createContext(String arg0) {10 //new一个新的threeExtensionContext出来;

11 return newthreeExtensionContext();12 }13

14 @Override15 public voiddispose() {16 //这个销毁资源的方法,暂时没有什么用,空着

17

18 }19

20 @Override21 public voidinitialize() {22 //初始化方法,暂时用不着,空着先

23

24 }25

26 }

test.java类:

1 package com.three;2

3 importcom.adobe.fre.FREContext;4 importcom.adobe.fre.FREFunction;5 importcom.adobe.fre.FREInvalidObjectException;6 importcom.adobe.fre.FREObject;7 importcom.adobe.fre.FRETypeMismatchException;8 importcom.adobe.fre.FREWrongThreadException;9

10 public class test implementsFREFunction {11

12 @Override //这个类作用就是 AS调用CALL方法给java传一个FREObject的参数组,然后,java给as返回一个FREObject

13 publicFREObject call(FREContext arg0,FREObject[] arg1)14 {15 int a=0;16 FREObject b = null;17 try{18 a=arg1[0].getAsInt();19

20 }catch(IllegalStateException e)21 {22 e.printStackTrace();23

24 }catch(FRETypeMismatchException e)25 {26 e.printStackTrace();27 }catch(FREInvalidObjectException e)28 {29 e.printStackTrace();30 }catch(FREWrongThreadException e)31 {32

33 e.printStackTrace();34 }35

36 try{37 b=FREObject.newObject(a*100);//调用FREObject的静态方法把a这个整型变量写到b里去;38

39 }catch(FREWrongThreadException e)40 {41 e.printStackTrace();42 }43

44 returnb;45

46 }47

48 }

threeExtensionContext.java:

package com.three;import java.util.*;importcom.adobe.fre.FREContext;importcom.adobe.fre.FREFunction;public class threeExtensionContext extendsFREContext{publicthreeExtensionContext(){

}

@Overridepublic voiddispose(){

}

@Override

// 下面这个比较关键,它的作用是定义as与JAVA具体方法通信的重要接口

public MapgetFunctions(){

Map functionMap = new HashMap();

functionMap.put("test", newtest());returnfunctionMap;

}

}

如果没有报错的话,右键->导出java-jar文件。

二.创建SWC文件

1.用flash builder新建一个flex库项目(flex library)。

注意:包括Adobe AIR库这个选项一定要选。

另外:附加的编译器参数要添加 -swf-version-13

4126738.html

再添加ActionScript类,代码如下:

1 package com.three2 {3 importflash.external.ExtensionContext;4

5 public classcallJava6 {7 varcontext:ExtensionContext;8 public functioncallJava()9 {10 context=ExtensionContext.createExtensionContext("com.three.Extension","");11 }12

13 public functioncallJavaTest(value:int):int{14

15 vara:int;16 a=context.call("test",value) as int;17 returna;18

19 }20 }21 }

项目结构如图:

4126738.html

右键点击myExtension.swc,把它复制出来,和刚才那个jar文件放在一起。然后复制一个myExtension.swc的副本,并把它的后缀改为.zip,然后把它解压到当前目录中。

三.建立extension.xml文件

1

2 com.three.Extension

3 1

4

5

6

7 TestAirJava01.jar

8 com.three.Extension

9 com.three.Extension

10

11

12

13

四. 签证文件(p12)

可以用flash builder建一个。

五.打包

4126738.html

上述文件放到同一个文件夹中,命令行中输入 cd 文件夹路径

然后,

java -jar adt.jar -package -tsa none -storetype pkcs12 -keystore grq186key.p12 -storepass 125521 -target ane m.ane extension.xml -swc myExtensionAs.swc -platform Android-ARM library.swf TestAirJava01.jar

即可生成m.ane 文件。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值