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类:
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的更多相关文章
- 打包制作 ANE
一.打包ANE 1.ios 准备文件: anePackager.bat aneswc.swc extension.xml flashAne.ane ioslib.a library.swf platf ...
- UNITY 打包安卓APK
1,安装JDK.这个直接下就行了. 2,安装android sdk相关.这个比较蛋疼,官网是被墙的.有些网站的包还是需要访问墙外下载的.关键是找对那个能用的包(对我来说就是不FQ). http://p ...
- 使用ionic与cordova(phonegap)进行轻量级app开发前的环境配置与打包安卓apk过程记录
前言 有人说:"如果你恨一个人,就让ta去接触cordova(phonegap)",这是因为这里面的水很深,坑很多,真让人不是一般地发狂.或许有幸运的人儿基本顺顺利利就配置完环境 ...
- ionic 打包安卓包
一.配置环境: 先按照之前的文章,配置好环境需要: 二.安装 1. 这里前提是 需要安装 node (地址: http://nodejs.cn/download/) 命令: node -v // ...
- vs2017打包安卓项目简述
1.使用vs2017创建安卓项目 2.选择Release模式编译项目 3.项目存档 4.签名分发 存档完成后,点击分发按钮进入如下界面 按要求输入签名信息 选择apk保存位置 5.分享apk文件 参考 ...
- unity打包安卓应用及生成签名
首先,先进行安卓应用的打包.File->build Settings 弹出界面后选择Android,注意,这里如果黄色区域内容与我这个不一致,说明电脑上没有安装studio(安卓开发环境),具体 ...
- Jenkins打包安卓时提示没同意constraintLayout的license的解决方法
使用Jenkins打包安卓项目时,报错并失败,错误信息: You have not accepted the license agreements of the following SDK compo ...
- jenkins打包安卓项目
jenkins打包安卓项目和其它项目差不了太多. 1.构建选择 gradle(如果不用gradle自己写脚本编译也可) 2.jenkins用户需要安装JDK.SDK,jenkins会自动下载gradl ...
- IONIC 打包安卓apk详细过程
参照以下链接: https://blog.csdn.net/qq_20264891/article/details/79319408 当 cordova 项目安装的 android 平台版本 与 系统 ...
随机推荐
- 【Java安装】Centos6.8 安装Java1.6
安装java 1.6 Centos6.8安装完成后,一般都安装了java,为了安装java1.6,需要卸载系统自带的java,主要步骤: 先安装java1.6,目的:为了防止先卸载系统自带java时, ...
- vmware 没挂载光盘解决方案
一定要选中上方的'已连接'
- android 开源项目一览
直接拿来用!最火的Android开源项目(一) http://www.csdn.net/article/2013-05-03/2815127-Android-open-source-projects ...
- Servlet间的跳转
Forward 转向(Forward)是通过RequestDispatcher对象的forward(HTTPServletRequest req, HttpSerletRespon ...
- C# Base64字符串转换成图片及图片转换为Base64
最近有朋友经常会问我一些问题,例如,如何把一个字符串转换成base64字符串,如何把一个二进制文件转换成Base64文件,以及如何转换回原有的文件,在此我把方法写一下 字符串与Base64相互转换 ...
- Oracle Erp常用网站
2014-01-01 Created By BaoXinjian
- PLSQL_查询SQL的执行次数和频率(案例)
2014-12-25 Created By BaoXinjian
- c++,opencv播放视频
#include <opencv2\opencv.hpp>#include <iostream> using namespace cv;using namespace std; ...
- python随文档
UNIX网络编程--socket的keep http://www.68idc.cn/help/opersys/unixbsd/20150731471448.html 云计算学习和实践: 原创<每 ...
- H桥电路
电路特点:有三极管组成4个桥的腿,中间可以使电容或是电机. 应用:直流电机的正反转控制.DC-AC逆变电源(脉冲直流变为周期交流) 关键点:同一个时刻只能对角的一对三极管导通,同侧不能一块导通,共2对 ...