- 积分
- 136405
- 注册时间
- 2014-12-27
- 最后登录
- 2026-3-3
- 在线时间
- 606 小时
- 威望
- 562
- 贡献
- 29
- 金币
- 52905
- 钢镚
- 1422
- 交易凭证
- 1
- 分享
- 0
- 精华
- 33
- 帖子
- 2094
- 主题
- 1742
TA的每日心情 | 擦汗 2018-4-10 15:18 |
|---|
签到天数: 447 天 [LV.9]以坛为家II
超级版主
    
- 威望
- 562
- 贡献
- 29
- 金币
- 52905
- 钢镚
- 1422
 
|
参考教程:开发和使用针对 Android 设备的 Adobe AIR 原生扩展
打开FlashBuilder4.7,新建一个“ActionScript 库项目”;
包括 Adobe AIR 库,完成:
右键项目,新建一个 ActionScript 类“com.zero.MyANE”;
弄个 ExtensionContext 的实例 ec;
如无意外,bin/ 下就应该有一个“MyANE.swc”喽:
如果没有,可能是没有勾选“自动构建”,可以右键项目,构建一下。
打开 Java ADT,新建一个“Android Application Project”;
包名切记用跟上面 swc 一样的“com.zero”:
不勾“Create activity”;
勾上“Mark this project as a library”;
选个合适的路径保存工程:
从 AIRSDK 中把“FlashRuntimeExtensions.jar”拷到工程的 libs/ 下:
(拷完了记得刷新工程)
右键 src,新建一个类“com.zero.MyANE”,接口是“com.adobe.fre.FREExtension”:
建完后会自动加上接口的所有方法。
右键 com.zero,新建一个类“com.zero.MyANEContext”,扩展“com.adobe.fre.FREContext”(别问我为什么我特么也是抄的):
右键 com.zero,新建一个类“com.zero.MyFun”,接口是“com.adobe.fre.FREFunction”。
把 MyANE 第11行的“return null;”改成“return new MyANEContext();”:
把 MyANEContext 第19行的“return null;”改成返回一个“HashMap”:
在 MyFun 第12行的“return null;”前面插入一行
“Toast.makeText(arg0.getActivity(), "调用了 MyFun 的 call", Toast.LENGTH_SHORT).show();”:
如无意外,bin/ 下就应该有一个“ane.jar”喽:
新建一个文件夹“打包ANE”,里面再建一个文件夹“Android-ARM”。
打包ANE/ 目录下放:MyANE.swc,证书“1234.p12”,还要一个“extension.xml”,内容是:
- <extension xmlns="http://ns.adobe.com/air/extension/15.0">
- <id>com.zero</id>
- <versionNumber>1</versionNumber>
- <platforms>
- <platform name="Android-ARM">
- <applicationDeployment>
- <nativeLibrary>ane.jar</nativeLibrary>
- <initializer>com.zero.MyANE</initializer>
- <finalizer>com.zero.MyANE</finalizer>
- </applicationDeployment>
- </platform>
- </platforms>
- </extension>
复制代码 我的AIRSDK放在“D:\AIRSDK\”,版本是15.0;
其他参数可参考:开发和使用针对 Android 设备的 Adobe AIR 原生扩展。
Android-ARM/ 目录下放 ane.jar;
然后用WinRAR啥的打开“MyANE.swc”,解压“library.swf”和“catalog.xml”到 Android-ARM/ 下:
然后写一个打包脚本“打包ANE.bat”:
双击就可以打包ANE。
这里有必要说明一下的是,“打包ANE.bat”经常会运行不一会就退出,而且ANE也没成功生成(里面的“echo.&pause”是无效的,不会停下来让你看原因)。
我的解决办法是弄一个“运行CMD.bat”,双击打开可以原地运行一个cmd窗口:
右键粘贴打包代码,Enter 运行:
比如提示:
“F:\zero\android2014\20141001\4\打包ANE\extension.xml(8): error 105: extension.platforms.platform.applicationDeployment.nativeLibrary contains an invalid value”,
是说 nativeLibrary 节点有不合法的值,比如下划线,空格之类:
常见的还有比如:
“Invalid swc file. The extension NameSpace requires the SWF verison to be 26 or lower.”,
一般是 SWC 项目的 AIRSDK 版本比打包 ANE 的 AIRSDK 版本高造成的,可以换 AIRSDK,或者编译 SWC 时加上参数“-swf-version=26”:
一切顺利,就可以看到打包出来的“MyANE.ane”啦:
打开FlashBuilder4.7,新建一个“ActionScript 手机项目”;
本机扩展添加刚才好不容易生成的“MyANE.ane”:
调用 MyFun:
在手机上调试的效果:
Toast 是“吐司”的意思,大家说这小框框像不像吐司。
传参并获取返回值:
Java 里改成对应的:
重新打包 ane,更新项目,调试。
调试效果:
本文来自:http://bbs.9ria.com/thread-418251-1-1.html
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
|