守望者--AIR技术交流

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

搜索
热搜: ANE FlasCC 炼金术
查看: 3696|回复: 0
打印 上一主题 下一主题

[Android] ANE 开发入门

[复制链接]
  • TA的每日心情
    擦汗
    2018-4-10 15:18
  • 签到天数: 447 天

    [LV.9]以坛为家II

    1742

    主题

    2094

    帖子

    13万

    积分

    超级版主

    Rank: 18Rank: 18Rank: 18Rank: 18Rank: 18

    威望
    562
    贡献
    29
    金币
    52905
    钢镚
    1422

    开源英雄守望者

    跳转到指定楼层
    楼主
    发表于 2015-1-31 12:42:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    参考教程:开发和使用针对 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”,内容是:
    1. <extension xmlns="http://ns.adobe.com/air/extension/15.0">
    2.   <id>com.zero</id>
    3.   <versionNumber>1</versionNumber>
    4.   <platforms>
    5.     <platform name="Android-ARM">
    6.       <applicationDeployment>
    7.         <nativeLibrary>ane.jar</nativeLibrary>
    8.         <initializer>com.zero.MyANE</initializer>
    9.         <finalizer>com.zero.MyANE</finalizer>
    10.       </applicationDeployment>
    11.     </platform>
    12.   </platforms>
    13. </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
    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
    收藏收藏 分享分享 支持支持 反对反对 微信
    守望者AIR技术交流社区(www.airmyth.com)
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    
    关闭

    站长推荐上一条 /4 下一条

    QQ|手机版|Archiver|网站地图|小黑屋|守望者 ( 京ICP备14061876号

    GMT+8, 2026-3-13 16:53 , Processed in 0.053899 second(s), 37 queries .

    守望者AIR

    守望者AIR技术交流社区

    本站成立于 2014年12月31日

    快速回复 返回顶部 返回列表