Flash Air 打包安卓 ane

工具:

1.flash builder

2.adt打包工具

3.数字证书

一. 创建 jar 文件

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

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

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

各java代码如下:

Extension.java类:

 1 package com.three;
 2 import com.adobe.fre.*;
 3
 4 //Extension这个类是AS与JAVA交互的最基础的入口
 5 public class Extension implements FREExtension {
 6
 7
 8 @Override
 9 public FREContext createContext(String arg0) {
10 // new一个新的threeExtensionContext出来;
11 return new threeExtensionContext();
12 }
13
14 @Override
15 public void dispose() {
16 // 这个销毁资源的方法,暂时没有什么用,空着
17
18 }
19
20 @Override
21 public void initialize() {
22 // 初始化方法,暂时用不着,空着先
23
24 }
25
26 }

test.java类:

 1 package com.three;
 2
 3 import com.adobe.fre.FREContext;
 4 import com.adobe.fre.FREFunction;
 5 import com.adobe.fre.FREInvalidObjectException;
 6 import com.adobe.fre.FREObject;
 7 import com.adobe.fre.FRETypeMismatchException;
 8 import com.adobe.fre.FREWrongThreadException;
 9
10 public class test implements FREFunction {
11
12     @Override

       //这个类作用就是 AS调用CALL方法给java传一个FREObject的参数组,然后,java给as返回一个FREObject
13     public FREObject 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          return b;
45
46     }
47
48 }

threeExtensionContext.java:

package com.three;
import java.util.*;

import com.adobe.fre.FREContext;
import com.adobe.fre.FREFunction;

public class threeExtensionContext extends FREContext{

    public threeExtensionContext(){

    }

    @Override
    public void dispose(){

    }

    @Override

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

public Map<String,FREFunction> getFunctions(){

        Map<String,FREFunction> functionMap = new HashMap<String,FREFunction>();

        functionMap.put("test", new test());
        return functionMap;
    }
}

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

二.创建SWC文件

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

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

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

再添加ActionScript类,代码如下:

 1 package com.three
 2 {
 3     import flash.external.ExtensionContext;
 4
 5     public class callJava
 6     {
 7         var context:ExtensionContext;
 8         public function callJava()
 9         {
10             context=ExtensionContext.createExtensionContext("com.three.Extension","");
11         }
12
13         public function callJavaTest(value:int):int{
14
15             var a:int;
16             a=context.call("test",value) as int;
17             return a;
18
19         }
20     }
21 }

项目结构如图:

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

三.建立extension.xml文件

 1 <extension xmlns="http://ns.adobe.com/air/extension/2.5">
 2 <id>com.three.Extension</id>
 3 <versionNumber>1</versionNumber>
 4 <platforms>
 5 <platform name="Android-ARM">
 6 <applicationDeployment>
 7 <nativeLibrary>TestAirJava01.jar</nativeLibrary>
 8 <initializer>com.three.Extension</initializer>
 9 <finalizer>com.three.Extension</finalizer>
10 </applicationDeployment>
11 </platform>
12 </platforms>
13 </extension>

四. 签证文件(p12)

可以用flash builder建一个。

五.打包

上述文件放到同一个文件夹中,命令行中输入 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 文件。

时间: 2024-10-10 20:49:31

Flash Air 打包安卓 ane的相关文章

ionic 打包安卓包

一.配置环境: 先按照之前的文章,配置好环境需要: 二.安装 1. 这里前提是 需要安装  node (地址: http://nodejs.cn/download/) 命令: node -v   //返回版本号 查看自己是否安装过node,如果没有安装,请访问上面地址 进行安装: 2. 使用npm安装Cordova和 ionic npm install -g ionic cordova 如果长时间没有安装成功,则使用 cnpm 淘宝镜像进行安装: 首先安装 cnpm : npm install

FLEX AIR 读写安卓本地文件

1.  目标: 将字节流图片保存在安卓本地路径,如 "/data/mypppd/"下, file = File.documentsDirectory.resolvePath("/data/mypppd/"+countPoint+".jpg"); var fileStream:FileStream = new FileStream(); fileStream.open(file, FileMode.WRITE); fileStream.writeB

Jenkins打包安卓时提示没同意constraintLayout的license的解决方法

使用Jenkins打包安卓项目时,报错并失败,错误信息: You have not accepted the license agreements of the following SDK components: [ConstraintLayout for Android 1.0.0-alpha9, Solver for ConstraintLayout 1.0.0-alpha9]. 开始以为是没装组件的原因,但是在android studio中安装了这两个组件依旧报这个错误. 解决方法: 到a

Actionscript,AS3,MXML,Flex,Flex Builder,Flash Builder,Flash,AIR,Flash Player之关系

转自zrong's blog:http://zengrong.net/post/1295.htm ActionScript ActionScript通常简称为AS,它是Flash平台的语言.AS编写的程序,最终可以编译成SWF.SWC.SWF就是我们常说的Flash动画.但是现在SWF已经不仅仅是动画,而是RIA的载体. ActionScript有3个版本,分别是1.0版(AS1),2.0版(AS2)和3.0版(AS3).只有Flash Player 9及以上播放器才支持AS3编译的SWF.这三

Cocos2d-x打包安卓apk

|   版权声明:本文为博主原创文章,未经博主允许不得转载. 1. 下载安装安卓(android)环境 见http://www.cnblogs.com/geore/p/5793620.html,按照其中步骤来配置apache-ant,adt和ndk的环境变量. apache-ant:  http://ant.apache.org/bindownload.cgi ndk:   http://wear.techbrood.com/tools/sdk/ndk/ adt:    http://www.a

cocos2dx 在Mac平台下利用Eclipse打包安卓apk安装包详细教程

最近在学习cocos2dx在MAC上如何打包apk,今天先把安装JDK和ANT的过程记来. 首先,打开终端,输入"java -version" 点击回车后,出现如下提示: 我们的MAC上并没有安装过JDK,点击"更多信息"会打开浏览器,然后下载相应版本的JDK,这里要先选择"Accept License Agreement"才可以下载 下载好之后,安装,这里直接下一步就可以了 安装好之后,我们再次输入命令查看结果,已经成功安装 接下来是ant,下

网页打包安卓APP流程

搭建环境过程: 1. 安装JDK. 参见http://www.cnblogs.com/Li-Cheng/p/4334985.html. 注:实质上到该网址上下载好JDK安装包,安装后添加一个环境变量: JAVA_HOME,其值为:C:\Program Files\Java\jdk1.8.0_73(由于安装路径不同,从路径下复制即可),然后在PATH变量中添加一个: %JAVA_HOME%\bin; 一定要记得在Path中添加的所有路径都要以;隔开,不然可能会影响系统运行. 2. 安装Androi

quick cocos2d-x 3.5打包安卓apk(编译cocos2d-x的os+打apk)

1:编译os包(原教程:http://blog.csdn.net/yanghaojian/article/details/46777521) 1.新建一个工程,HelloWorld 2.打开Eclipse,导入工程下的frameworks\runtime-src\proj.Android安卓工程 3.导入cocos库,这里可以选择引擎的库,或者项目工程的引擎库都可以.创建项目的时候,已经拷贝过来一份.我是用引擎原来那一边的库, 我的是:E:\quick-3.5\cocos\platform\an

flash Air 在同一个目录下面创建txt,写入字

import flash.filesystem.*; var file:File=new File(File.applicationDirectory.nativePath + '/HelloWorld.txt'); var stream:FileStream = new FileStream() stream.open(file, FileMode.WRITE); var str:String = "Congratulations on AIR Save Path"; stream.