我想问一下“在ANE中管理资源的适当方法是什么?”
我已经导出了jar-library,然后从Air Mobile调用了ANE。 (我从eclipse导出时检查include-resource-option。) 当我在设备上进行调试时,看起来Java的R.resource被R.resource空调所覆盖。
例如,我添加了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-folder, 但解压后.ane它不包含res-folder。
我猜,这意味着adt命令无法包含res文件夹。
我的命令: adt -package -target an ANExxx.ane ane.xml -swc ANExxx.swc -platform Android-ARM library.swf res Nativexxx.jar -platform default library.swf Nativexxx.jar
答案 0 :(得分:0)
创建一个构建文件夹:
/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/ .