来源:http://blog.csdn.net/hero82748274/article/details/8656674

第一次尝试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 分布在不同的版本上,目前意识到这一点,官方在推进版本问题上今年上会更需要慎重一点。

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

Air for ANE:一星期的调试笔记的更多相关文章

  1. Tomcat调试笔记

    调试笔记 在使用Tomcat过程中经常碰到问题,导致tomcat启动失败.如下↓ 由于报错太过笼统,我根本无法找出错误.后来我切换到Console视图下,看到了如下错误信息. 根据报错信息,错误原因是 ...

  2. JavaScript特效(调试笔记)

    JavaScript特效 一.在网页上显示当前的时间日期,例如:“2016年3月26日 星期六”. js源代码: function getTime() { var today = new Date() ...

  3. USB wifi调试笔记

    本文以realtek 8192CU WiFi模块为例,介绍USB wifi在Jelly Bean 4.1的调试笔记. 1.WIFI打不开现象概述 WiFi打不开是指您在UI的settings下选中Wi ...

  4. ida动态调试笔记

    ida动态调试笔记 目标文件:阿里安全挑战赛的第二题 点击打开链接 使用环境:ida6.8点击打开链接,adt bundle点击打开链接 首先打开avd安卓模拟器,界面如下: 在dos下运行adb命令 ...

  5. modbus-poll和modbus-slave工具的学习使用——modbus协议功能码3的解析(及欧姆龙温控器调试笔记)

    最近的项目中使用到了欧姆龙的温控器,里面有很多的通信方式,我们使用的常见的modbus——RTU方式,其他方式我们不使用,其中通信手册上面有很多通信的实例,欧姆龙modbus还区分4字节模式和2字节模 ...

  6. ANE原生代码的调试(安卓)

    忙了一天终于有空继续这篇教程了. ANE的原生代码的调试其实在Adobe的官网有介绍的,但是同样很含糊,我摸索了一段时间现在记录下我的心得. 首先你得安装Eclipse,然后你得启动Eclipse 然 ...

  7. Air for ANE:打包注意的地方

    来源:http://blog.csdn.net/hero82748274/article/details/8631982 今天遇到了一个打包ANE 文件的问题,导致花费了几个小时查找,最后师弟的一句话 ...

  8. GDB调试笔记

    参考资料:GDB调试精粹及使用实例 # 调试实例 #include <iostream> #include <cstring> using namespace std; ][] ...

  9. 《C#并行编程高级教程》第7章 VS2010任务调试 笔记

    没有什么好说的,主要是将调试模式下的Parallel Tasks窗体和Parallel Stacks窗体.折腾一下应该比看书效果好.(表示自己没有折腾过) 另外值得注意的是,主线程不是一个任务.所以主 ...

随机推荐

  1. 含有虚拟列的表 怎么用EXP导出?

    最近导一个测试库,报有虚拟列的表不支持,如下: EXP-00107: Feature (VIRTUAL COLUMN) of column CTB_CLIENT_SUBMIT_TIME_MONTH i ...

  2. LeetCode 993. Cousins in Binary Tree(判断结点是否为Cousin)

    993. Cousins in Binary Tree In a binary tree, the root node is at depth 0, and children of each dept ...

  3. SDN实验---Mininet的相关命令(待补充完善)

    一:补充 (一)推文 openvswitch的原理和常用命令 https://blog.csdn.net/ten_sory/article/details/79593554 (二)回顾:sudo mn ...

  4. 使用协方差矩阵的特征向量PCA来处理数据降维

    取2维特征,方便图形展示 import matplotlib.pyplot as plt from sklearn.decomposition import PCA from sklearn.data ...

  5. Centos安装nodejs,并运行项目

    不建议编译安装,对gcc要求比较高 安装nodejs yum install nodejs nodejs升级 npm i -g n --force n stable npm升级 npm install ...

  6. PHP_MySQL高并发加锁事务处理

    1.背景: 现在有这样的需求,插入数据时,判断test表有无username为‘mraz’的数据,无则插入,有则提示“已插入”,目的就是想只插入一条username为‘mraz’的记录. 2.一般程序 ...

  7. Java/C++ 学习资源推荐

    列举一下我所知道的一些学习资源,希望能对大家有所帮助 Java学习资源资源: 1.尚学堂 Java300集 链接:https://study.163.com/course/introduction.h ...

  8. [CMD] 批处理

    https://www.tutorialspoint.com/batch_script/batch_script_commands.htm

  9. Linux下zookeeper单机版详细安装

    Linux下zookeeper单机版详细安装 1.zookeeper简介 ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop ...

  10. AVR单片机教程——数字输出

    从上一篇教程中我们了解到,按键与开关的输入本质上就是数字信号的读取.这一篇教程要讲的是,控制LED的原理是数字信号的输出.数字IO是单片机编程之有别于桌面编程的各项内容中最简单.最基础的. 在讲数字信 ...