来源: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. Research Guide for Video Frame Interpolation with Deep Learning

    Research Guide for Video Frame Interpolation with Deep Learning This blog is from: https://heartbeat ...

  2. SQL优化-如何分析性能瓶颈

    MySQL优化一览图 笔者将优化分为了两大类:软优化和硬优化.软优化一般是操作数据库即可:而硬优化则是操作服务器硬件及参数设置. 1.软优化 1)查询语句优化 首先我们可以用EXPLAIN或DESCR ...

  3. 详解intent和intentfilter

    1.Intent对象简介 Intent中文意思指"意图",按照Android的设计理念,Android使用Intent来封装程序的"调用意图",不管启动Acti ...

  4. eclipse没有server选项怎么解决

    eclipse没有server选项怎么解决 步骤: 1,在eclipse菜单“Help”中选择“InstallNew Software”如下图所示. 2,然后在Work with中点击Add,如下图所 ...

  5. too many positional arguments错误

    在window下mongodb默认安装在c盘的Program Files文件下 这个文件名中间有个空格    就导致了接下来too many positional arguments错误的产生

  6. [LeetCode] 500. Keyboard Row 键盘行

    Given a List of words, return the words that can be typed using letters of alphabet on only one row' ...

  7. SecureCRT 使用密钥登录 Ubuntu

    记录 SecureCRT 通过 SSH 使用密钥登录 Ubuntu. 具体步骤如下: 1. 使用 SecureCRT 生成密钥对: 工具 -> 创建公钥 -> 密钥类型 RSA -> ...

  8. LInux学习之路

    linux 简单操作命令 cd 进入目录 ls 查看 ll详细查看 man ls -- help touch mkdir find 正则表达式 ? [] [a-z][0-9] {字符串,} {a..z ...

  9. linux环境变量 bash_profile

    linux环境变量 bash_profile [root@iZ23uewresmZ ~]# vi /root/.bash_profile <pre># .bash_profile # Ge ...

  10. Linux系统下Redis单机版的安装详细教程

    Linux系统下Redis单机版的安装详细教程 1.下载软件安装包并上传到root目录 这里以旧版本的3.0进行安装,比较成熟稳定,具体软件可以通过qq群534073451文件下载