如何在ANE中使用Java中的R.resource?

时间:2013-03-14 03:52:12

标签: java air jar

大家,对不起我的英语不好......

我想问一下“在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

1 个答案:

答案 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/ .