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 平台版本 与 系统 ...
随机推荐
- Configure Puppet Master with Passenger and Apache on Centos
What is Passenger? Passenger (AKA mod_rails or mod_rack) is an Apache 2.x module which lets you run ...
- DHCP协议讲解
一.DHCP服务介绍: DHCP为动态主机配置协议,该协议能自动配置主机的IP地址.子网掩码.网关及DNS服务器等TCP/IP信息.DHCP可以降低客户机IP地址配置的复杂度和网络管理成本. DHCP ...
- 从1970年1月1日00:00:00 GMT以来此时间对象表示的毫秒数转化为Datetime
1970年1月1日(00:00:00 GMT)Unix 时间戳(Unix Timestamp)对时间转换 将Long类型转换为DateTime类型 /// <summary> /// 将L ...
- SVN 分支及合并的介绍和实践---命令行
写在前面 一些相关的概念和原理 进行分支开发的最佳实践 合并的分类 在 Eclipse 中进行合并操作 相关资源 写在前面 本文是由演讲整理而来的,介绍了 SVN 分支与合并的概念.流程和一些实际操作 ...
- POJ 4046 Sightseeing 枚举+最短路 好题
有n个节点的m条无向边的图,节点编号为1~n 然后有点权和边权,给出q个询问,每一个询问给出2点u,v 输出u,v的最短距离 这里的最短距离规定为: u到v的路径的所有边权+u到v路径上最大的一个点权 ...
- android之location01
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> <Linear ...
- ubuntu 命令学习大全
http://wiki.ubuntu.org.cn/UbuntuSkills#.E6.98.BE.E7.A4.BA.E5.BD.93.E5.89.8D.E7.A1.AC.E4.BB.B6.E4.BF. ...
- SVN版本管理trunk及branch相关merge操作
先说说什么是branch.按照Subversion的说法,一个branch是某个development line(通常是主线也即trunk)的一个拷贝,见下图: branch存在的意义在于,在不干扰t ...
- SQL Server 2005中的分区表(五):添加一个分区(转)
所谓天下大事,分久必合,合久必分,对于分区表而言也一样.前面我们介绍过如何删除(合并)分区表中的一个分区,下面我们介绍一下如何为分区表添加一个分区. 为分区表添加一个分区,这种情况是时常会 发生的.比 ...
- Microsoft Visual C++ 2015 Redistributable(x64) - 14.0.2306 设置失败
想要在Windows 2008 R2 中 安装PHP, 需要安装 Microsoft Visual C++ 2015 Redistributable(x64) ,结果提供设置失败. 先中找到以下文字, ...