ANE 从入门到精通

时间:2021-08-15 14:31:04

在AIR4.0版本之前,ANE内无法使用R*,操作资源仅能使用getResourceID(). 对于接SDK来说尤为头疼.

不过4.0以后可以通过在打包时候指定platform.xml来直接使用R*访问资源

 

Adobe官网相关链接

 

棒子的一个视频

 

其中需要注意的两点

1` Android项目工程要设置为Library

2` 打出的Jar包删除R*相关的Class  一键脚本参见: ANE 从入门到精通 --- 一键打包ANE

 

实战一下:

Step1 创建一个Android项目,注意选择Application,不要选择Library 因为Library不生成相应的文件结构和AndroidManifest.xml

ANE 从入门到精通

 

Step2 更改项目为Library

ANE 从入门到精通

 

Step3 新增或者更改 一个Fun,使其通过R*访问一个资源 ,这里访问的是  R.string.hello

package com.testzone.t2;

import android.content.Intent;
import android.widget.Toast;
import com.adobe.fre.FREContext;
import com.adobe.fre.FREFunction;
import com.adobe.fre.FREObject;

public class T1ANEFun implements FREFunction {

@Override
public FREObject call(FREContext freContext, FREObject[] freObjects) {
Toast.makeText(freContext.getActivity(),
"call t1", Toast.LENGTH_SHORT).show();

try {
String hello
= freContext.getActivity().getString(R.string.hello);
Toast.makeText(freContext.getActivity(),
"Hello is : " + hello, Toast.LENGTH_SHORT).show();
}
catch (Exception e) {
Toast.makeText(freContext.getActivity(),
"Error is : " + e.toString(), Toast.LENGTH_SHORT).show();
}
return null;
}
}

 

Step4 编译打出Jar包

该操作参见 ANE 从入门到精通 --- 简单的Whatever

 

Step5 删除Jar包中所有关于R*的部分

ANE 从入门到精通

 

Step6 将Jar包拷贝到 ANE生成目录

 

Step7 ANE生成目录下创建platform.xml

<platform xmlns="http://ns.adobe.com/air/extension/19.0">
<packagedResources>
<packagedResource>
<packageName>com.testzone.t2</packageName>
<folderName>res</folderName>
</packagedResource>
</packagedResources>
</platform>

具体含义请参照 Adobe官网相关链接

 

Step8 修改打包参数加入

-platformoptions platform.xml

详情参见ANE 从入门到精通 --- 一键打包ANE