大家,抱歉我的英语不好。
我想问“在ANE中管理资源的适当方法是什么?”?
我已经导出了jar库,然后从Air Mobile调用了ANE。
(从eclipse导出时,我检查include-resource-option。)
当我在设备上调试时,似乎Java的R.resource被R.resource air所覆盖。
例如,我添加了FREFunction返回资源值。
如果我引用并显示string.app_name,它将显示Air-Project名称的string.app_name。
在我添加string.test以在Java中重新生成源,然后从apk显示它之后,没有任何价值。
在ANE中管理资源的适当方法是什么?
参考:
http://www.adobe.com/devnet/air/native-extensions-for-air/extensions/vibration.html
public class Native_xxxxxxx implements FREFunction {
private Resources res;
public FREObject call(FREContext arg0, FREObject[] arg1) {
try {
Activity activity = arg0.getActivity();
res = activity.getResources();
return FREObject.newObject(res.getString(arg0.getResourceId("string.app_name ")));
//return FREObject.newObject(res.getString(arg0.getResourceId("string.test"))) ;
//return FREObject.newObject(res.getString(R.string.test));
} catch ( Exception ex ) {
}
return null;
}
}
附加信息:
我意识到一件事
解压缩.jar后,它包含res文件夹,
但将.ane解压缩后,它不包含res文件夹。
我想,这意味着adt命令无法包含res文件夹。
我的命令:
adt -package -target ane ANE ANExxx.ane ane.xml -swc ANExxx.swc-平台Android-ARM库.swf res Nativexxx.jar-平台默认库.swf Nativexxx.jar
最佳答案
创建一个构建文件夹,如下所示:
/build
/ane
myANEInterface.swc
catalog.xml
extension.xml
/Android-ARM
myANE.jar
library.swf
/res
resource.xml
注意res文件夹中有您的资源文件的副本。
然后从build文件夹外部使用它,请注意最后的点:
adt -package -storetype PKCS12 -keystore ./mycert.p12 -storepass yourpassword -tsa none -target ane myANE.ane ./build/ane/extension.xml -swc ./build/ane/myANEinterface.swc -platform Android-ARM -C ./build/ane/Android-ARM/ .