Air for ANE:一星期的调试笔记

来源:互联网 发布:万网域名管理中心 编辑:程序博客网 时间:2024/04/27 21:14

      第一次尝试ANE的东西,让我感觉到很折腾人。adobe 出的这个方案虽然可以解决很多as3 扩展性的问题,但是这个方案并不完美在调试的时候没有解决到开发者所需要的调试方案。初次尝试一个ANE 在完全没有背景情况下,第一个程序有时候也是很折腾人。有时候往往低级犯错却导致程序出现闪退的情况。ANE调试HelloWorld 或者弹出一个窗口,内置ios 消费等案例目前还是很多。下面记录一下这周在调试的时候,说起来也很傻。

 

    上一周的第一天,在尝试第一个程序的时候,基本上代码都完成。安装好android环境,不好意思,刚碰上了一个bug,闪退。

    第二天,闪退的情况并没有解决,纠结很久也在网上和外国的网站上看了不少案例进行一个对比,闪退的原因还没有找到。

    第三天,困扰问题,开始尝试使用其他例子进行。 结果尝试一个案例的文件ane文件结果是ok,但是自己的写案例却不成,为什么?

   第四天,依旧没有答案,困扰问题还是一直,不断尝试,如swc 版本,extendsXMl里面文件的更改,ns尝试,版本sdk 尝试,结果还不行

   第五天,当使用其他文件打出的jar文件,却没有什么问题。自己尝试写的swc 还是可以,但是转换自己的jar文件就是不行,是版本问题吗?

  第六天,出去玩了一下,晚上继续奋战,结果尝试了各种情况,闪退问题终于解决了。

 

实验过程:ANE 调用ANdroid 弹出窗口:

 

第一 ,拿已经OK的ANE文件导出的jar 和分解后swc文件,重新 打包 实验结果 ok,证明打包脚本没问题,但是设置extension.xml 文件  ns 命名空间 为3.1 则出问题 调用不到 ,而2.5 则为正常,因此得到证明打包swc的时候要低于14方式打包

<extension xmlns="http://ns.adobe.com/air/extension/2.5">

<extension xmlns=http://ns.adobe.com/air/extension/3.1>

 

第二、猜测(1)有可能jar 包出错 (2)打包的swc 不对,ns命名空间不行


第三。采用 3.1air sdk 编译的 swc 命名空间为vesion=13 设置ns =2.5的时候,调用已经证明OK的jar包,依旧可以调用到ANE里面的程序
      说明一点,swc 制作文件 没有问题
      推断出,一直的错误在于jar包制作问题上

第四、问题关键就是在jar包导出上


第五。采用2.3.3 api 10的android sdk 导出。
      实验一,采用3.1sdk frextendExtend的扩展jar 出现没有问题 的情况。
      实验二 ,采用不是3.1的freExtend的sdk 扩展也没有问题 ,猜测这个文件和air sdk 没有关。
      最好每次都清理一下android 环境再导出jar 保证是有效。生成的jar 包,最终测试OK。

 

 最后,折腾人的东西原因是jar 包导出出问题。至于为什么会这样?现在还没猜测到。

 

  注意的事情android里面版本也有不同的,在尝试不同版本api的时候 究竟设置版本是不是出现最终原因,设置最低版本,是否ok,这里问题就可以一点点缩窄。

 

 

一直出现ExtensionContext.createExtensionContext(xx,xx)==null的情况,是经常有,有时候extension.xml 里面id 设置不对,有时候就像本人这种情况jar 包在导出的时候,一直有bug或者swc版本问题有时候也是权限的问题。

 

同时也要注意ANE和air sdk 版本问题,

这里有更详细的说明

 

3.0+

10-13

ns.adobe.com/air/extension/2.5

3.1+

14

ns.adobe.com/air/extension/3.1

3.2+

15

ns.adobe.com/air/extension/3.2

3.3+

16

ns.adobe.com/air/extension/3.3

3.4+

17

ns.adobe.com/air/extension/3.4

3.5+

18

ns.adobe.com/air/extension/3.5

 

 

http://help.adobe.com/en_US/air/extensions/WS99209310cacd98cc2d13931c1300f2c84c7-8000.html

extension.xml

 

 

后面在尝试第一个ANE的调用的时候,要是遇到这种情况,也可以尝试拿一个已经证明可以调用ANE 文件分解它,使用里面的案例进行调用。一点点排除这种错误。

 

最后不得不说一点,ANE目前adobe 虽然出来了,调试手段方式并不艺术,坑爹的地方还真不少,望官方真的可以解决,让开发者可以专注在开发设计上,而不是把东西丢出来最后就不管。一直有个问题,air for ios 可以支持编译后是字节码,而为什么对android 平台支持变得少了。

          我想后续在官方这安卓个方面上并不会有过多投入和专注上,而会集中在ios上,但是目前真正可以投入使用ios 的air 还有多远的路要走?我想目前还不行。

 

  在之前过快版本推进也出现了不少因为版本导致的问题,这个方面有时候会是一两句可以解决,带来不好的影响是过多的版本 让开发者和开发商不愿意冒险去兼容出现了问题。

 

   另外flash player 版本的问题上,很多页游公司不愿意冒险去使用11版本,为了兼容到10的版本,导致一点是高级的api 分布在不同的版本上,目前意识到这一点,官方在推进版本问题上今年上会更需要慎重一点。

 

 

 另外一点,偶然放一下,第二天就有灵感。太过纠结这个问题,就导致一个星期找不到问题的折腾日志。

原创粉丝点击