大家,抱歉我的英语不好。

我想问“在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/ .

10-07 18:46