2013-03-14 43 views
1

大家對不起,我的英語很差..如何在ANE中使用Java的R.resource?

我想問一下「在ANE中管理資源的適當方式是什麼?

我已經導出了jar庫,然後從Air Mobile調用ANE。 (當我從eclipse導出時,我會檢查include-resource-option)。 當我在設備上進行調試時,似乎Java的R.resource被R.resource air made overrided。

例如,我添加了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後,它包含了資源文件夾, 但解壓.ane之後,在沒有包含res文件夾。

我猜,這意味着adt命令無法包含res文件夾。

我的命令: ADT -package -target ANE ANExxx.ane ane.xml -swc ANExxx.swc -platform的Android-ARM library.swf的資源Nativexxx.jar -platform默認的library.swf Nativexxx.jar

+0

這個問題是不是與Android開發相關的呢? – 2013-03-14 03:53:39

+0

是的,我在Adobe AIR中運行Android本機代碼。 – marimurotani 2013-03-14 07:28:30

回答

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