在接入第三方SDK时,一切都按照正常情况进行 logcat打印的日志恰恰在关键时刻卡住。经过排查,发现出现 Unable to add window — token null is not for an application 这个报错。于是百度之

原来是在该使用activity的地方 使用了context  改回之后 便成功运行 ANE完美打包

如下记录

一般我们在FREFunction中写入需要功能的接口  即 在java里面 许多的功能合并在一个类文件里面 而我们ANE是 一个类 决定一个功能

那么问题来了,对于继承了Activity类的安卓代码  在用到activity时 直接是 this  或者 Activity.this 但是 在FREFunction中 是不能这么做的。因为没有

public FREObject call(FREContext arg0, FREObject[] arg1) {} 这个是一个标准 且默认的FREFunction

好在FRE提供了获取activiy的接口  即 如果在三方SDK代码中需要用到this或 Activity.this的时候 我们要将其替换成 arg0.getActivity()   在用到context的时候( 情况不多) 就是 arg0.getActivity().getApplicationContext();

其实 只要得到activity 那么 后面的用法 和原生差不多

发表评论

电子邮件地址不会被公开。 必填项已用*标注

Free Web Hosting