工具:

1.flash builder

2.adt打包工具

3.数字证书

一. 创建 jar 文件

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

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

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

各java代码如下:

Extension.java类:

 package com.three;
import com.adobe.fre.*; //Extension这个类是AS与JAVA交互的最基础的入口
public class Extension implements FREExtension { @Override
public FREContext createContext(String arg0) {
// new一个新的threeExtensionContext出来;
return new threeExtensionContext();
} @Override
public void dispose() {
// 这个销毁资源的方法,暂时没有什么用,空着 } @Override
public void initialize() {
// 初始化方法,暂时用不着,空着先 } }

test.java类:

 package com.three;

 import com.adobe.fre.FREContext;
import com.adobe.fre.FREFunction;
import com.adobe.fre.FREInvalidObjectException;
import com.adobe.fre.FREObject;
import com.adobe.fre.FRETypeMismatchException;
import com.adobe.fre.FREWrongThreadException; public class test implements FREFunction { @Override //这个类作用就是 AS调用CALL方法给java传一个FREObject的参数组,然后,java给as返回一个FREObject
     public FREObject call(FREContext arg0,FREObject[] arg1)
{
int a=0;
FREObject b = null;
try{
a=arg1[0].getAsInt(); }catch(IllegalStateException e)
{
e.printStackTrace(); }catch(FRETypeMismatchException e)
{
e.printStackTrace();
}catch(FREInvalidObjectException e)
{
e.printStackTrace();
}catch(FREWrongThreadException e)
{ e.printStackTrace();
} try{
b=FREObject.newObject(a*100);//调用FREObject的静态方法把a这个整型变量写到b里去; }catch(FREWrongThreadException e)
{
e.printStackTrace();
} return b; } }

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类,代码如下:

 package com.three
{
import flash.external.ExtensionContext; public class callJava
{
var context:ExtensionContext;
public function callJava()
{
context=ExtensionContext.createExtensionContext("com.three.Extension","");
} public function callJavaTest(value:int):int{ var a:int;
a=context.call("test",value) as int;
return a; }
}
}

项目结构如图:

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

三.建立extension.xml文件

 <extension xmlns="http://ns.adobe.com/air/extension/2.5">
<id>com.three.Extension</id>
<versionNumber>1</versionNumber>
<platforms>
<platform name="Android-ARM">
<applicationDeployment>
<nativeLibrary>TestAirJava01.jar</nativeLibrary>
<initializer>com.three.Extension</initializer>
<finalizer>com.three.Extension</finalizer>
</applicationDeployment>
</platform>
</platforms>
</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 文件。

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

  1. 打包制作 ANE

    一.打包ANE 1.ios 准备文件: anePackager.bat aneswc.swc extension.xml flashAne.ane ioslib.a library.swf platf ...

  2. UNITY 打包安卓APK

    1,安装JDK.这个直接下就行了. 2,安装android sdk相关.这个比较蛋疼,官网是被墙的.有些网站的包还是需要访问墙外下载的.关键是找对那个能用的包(对我来说就是不FQ). http://p ...

  3. 使用ionic与cordova(phonegap)进行轻量级app开发前的环境配置与打包安卓apk过程记录

     前言 有人说:"如果你恨一个人,就让ta去接触cordova(phonegap)",这是因为这里面的水很深,坑很多,真让人不是一般地发狂.或许有幸运的人儿基本顺顺利利就配置完环境 ...

  4. ionic 打包安卓包

    一.配置环境: 先按照之前的文章,配置好环境需要: 二.安装 1. 这里前提是 需要安装  node (地址: http://nodejs.cn/download/) 命令: node -v   // ...

  5. vs2017打包安卓项目简述

    1.使用vs2017创建安卓项目 2.选择Release模式编译项目 3.项目存档 4.签名分发 存档完成后,点击分发按钮进入如下界面 按要求输入签名信息 选择apk保存位置 5.分享apk文件 参考 ...

  6. unity打包安卓应用及生成签名

    首先,先进行安卓应用的打包.File->build Settings 弹出界面后选择Android,注意,这里如果黄色区域内容与我这个不一致,说明电脑上没有安装studio(安卓开发环境),具体 ...

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

    使用Jenkins打包安卓项目时,报错并失败,错误信息: You have not accepted the license agreements of the following SDK compo ...

  8. jenkins打包安卓项目

    jenkins打包安卓项目和其它项目差不了太多. 1.构建选择 gradle(如果不用gradle自己写脚本编译也可) 2.jenkins用户需要安装JDK.SDK,jenkins会自动下载gradl ...

  9. IONIC 打包安卓apk详细过程

    参照以下链接: https://blog.csdn.net/qq_20264891/article/details/79319408 当 cordova 项目安装的 android 平台版本 与 系统 ...

随机推荐

  1. C#语法杂谈

    1. 值类型和引用类型 1.1 值类型 比如int,float,struct等,和C/C++中的变量差不多,但编译器会强制你必须先初始化再使用,避免一不小心使用了未初始化的变量. 1.2 引用类型 c ...

  2. C# DEBUG 调试信息打印及输出详解

    转载自: http://blog.csdn.net/aaaaatiger/article/details/5583301 1.debug只在[debug模式下才执行](运行按钮后面的下拉框可选) 2. ...

  3. iphone dev 入门实例7:How to Add Splash Screen in Your iOS App

    http://www.appcoda.com/how-to-add-splash-screen-in-your-ios-app/ What’s Splash Screen? For those who ...

  4. 理解MVC模式

    理解一般意义上的MVC模式 MVC模式(Model-View-Controller)是软件工程中的一种软件架构模式,把软件系统分为以下三个基本部分: 模型(Model):模型用于封装与应用程序的业务逻 ...

  5. OAF_EO系列3 - Initialize详解和实现(案例)

    2014-06-14 Created By BaoXinjian

  6. [Mysql] MySQL配置文件my.cnf的理解

    一.缘由 最近要接手数据库的维护工作,公司首选MySQL.对于MySQL的理解,我认为很多性能优化工作.主从主主复制都是在调整参数,来适应不同时期不同数量级的数据. 故,理解透彻my.cnf里的参数是 ...

  7. 转-ListView的性能优化之convertView和viewHolder

    ListView的性能优化之convertView和viewHolder 2014-05-14 参考:http://www.cnblogs.com/xiaowenji/archive/2010/12/ ...

  8. strace命令

    简介 strace常用来跟踪进程执行时的系统调用和所接收的信号. 在Linux世界,进程不能直接访问硬件设备,当进程需要访问硬件设备(比如读取磁盘文件,接收网络数据等等)时,必须由用户态模式切换至内核 ...

  9. 非常详细GC学习笔记

    转载:http://blog.csdn.net/fenglibing/article/details/6321453 这是我公司同事的GC学习笔记,写得蛮详细的,由浅入深,循序渐进,让人一看就懂,特转 ...

  10. [ActionScript 3.0] 跨域策略文件crossdomain.xml配置详解

    1.简介 flash在跨域时唯一的限制策略就是crossdomain.xml文件,该文件限制了flash是否可以跨域读写数据以及允许从什么地方跨域读写数据. 位于www.a.com域中的SWF文件要访 ...