[AIR接入Android 平台]处理res资源之找不到资源ID

一点声明:我的水平有限 这里仅仅只能写出我认为可行的方案 和 代码

打包ANE会经常遇到找不到资源R.XXX ID的问题,或者是找到的资源ID不对 然后报NULL POINT错 直接程序崩溃。

AIR与android原生取资源方式的区别: ADOBE给出的取资源的方式是:

_context.getResourceId(`“id.AlipayTitleItemName”);`

但是原生JAVA取资源的方式是:

findViewById(R.id.AlipayTitleItemName);

[AIR接入Android 平台]ane 中oncreate

创建ANE,ANE的创建就不罗嗦了,这里需要注意一点,这里我们需要创建一个继承自Application的类,在该类的onCreate中完成小米SDK的初始化工作

在有的sdk接入中可能强制需要在android onCreate 事件中中调用sdk自身的onCreate

比如小米,或安智。

安智需要在onCreate 中mAnzhiCenter.createFloatView(this); 其他地方调用就会出现floatView 不显示的情况。

遇到这种需要在Air Ane 中控制Android Activity生命周期的情况。onCreate 的可以如下处理:

  1. 看能否继承Application,在Application中onCreate()中处理。

这种方式不能处理需要传入Activity 的情况(如安智),不过大多数Sdk都只需要传入context.

  1. 反编译Sdk 看能否拿到底层的api,在重写ui。

安智可以用这种方式自己写一个floatView 然后调用它的底层API。

  1. 自定义启动air的Activity。

这种方式能 完美解决各种生命周期的问题,如果使用FlashBuilder 打包,需要对打包后的apk 用apkTool 解压,修改manifest中的启动Activity。

如有疑问请留言。