2011-11-07 79 views
2

我一直在使用來自Adobe for Air 3.0的Android本機擴展的振動示例。Adob​​e air 3.0 ANE for Android,null ExtensionContext?

我有ANE編譯和.apk打包。

我遇到的問題是動作庫獲取null ExtensionContext。

我試着用adt -package -target apk-debug創建.apk,這樣我就可以在logcat中看到動作痕跡,這就是我發現空錯誤的地方。

extContext = ExtensionContext.createExtensionContext("com.adobe.Vibration", null); 

extContext爲空,並在以下.call()方法上崩潰。

所有的來源都是來自實例的庫存,我沒有改變任何東西。

有沒有人有任何獲得Adobe的ANE例子在Windows機器上工作的經驗?大多數例子都是針對Mac的。

+0

我沒有看到那條線有什麼問題,也許你的源代碼中有另一個地方導致extContext爲空? – Siebe

+0

有很多可能出錯的地方。您是否將擴展ID添加到您的應用程序描述符中? –

+0

-Siebe 按下按鈕時,只有大約3行代碼在崩潰之前經過。如果要查看上下文是否爲空,則使用啓動上下文的方法,該方法中的第一件事是創建上下文的此行。直接在那之後是崩潰的.call。 @Joe 擴展ID在描述符中。所有的來源都是從Adobe的網站下載的。該jar命名正確,所有的軟件包名稱都是正確的。在創建ANE或APK期間,我沒有收到任何錯誤... –

回答

1

好主。多麼浪費一個星期。

我正在使用gotoandlearn.com的一個教程,它告訴我,在構建腳本中,使用jar命令將我的本機擴展插入到jar中。

我只是使用自動構建在NativeAndroid/bin /文件夾中的.jar文件,一切都很好。

事實證明,該教程已過時並且對構建不再有用。

+0

那麼究竟是什麼解決方案? –

0

一個額外的評論。你需要設置目標平臺和複選框是從屬性 - > Android的庫來獲取bin文件夾中的編譯jar。

P.S. .sh from gotoandlearn可以在Windows下的Powershell中執行,並對運行的bat文件做一些小的修改:(cmd「/ c adt.bat」)

0

我對原生擴展有着完全相同的問題我在寫,並有開源。我使用Adobe DevNet的教程代碼開始了這個項目。我已經找到了一些我試圖完全遵循的具體問題的例子,並且還沒有運氣。我已經確定它是沙盒允許域問題。

這裏是我的代碼行:

_aneContext = ExtensionContext.createExtensionContext("com.adobe.sampleasextension", ""); 

這裏是我的GitHub項目代碼的鏈接:

https://github.com/interactivenyc/ANESampleProject/blob/master/TEST_AndroidAIR/src/ANESampleTest.as

這裏是我的編譯器錯誤:

SecurityError: Error #3207: Application-sandbox content cannot access this feature. 
    at flash.system::Security$/allowDomain() 
    at com.adobe.sampleasextension::SampleASExtension()[/Users/stevewarren/Clients/Speakaboos/git_repositories/ANESampleProject/ANESampleSWC/src/com/adobe/sampleasextension/SampleASExtension.as:14] 
    at ANESampleTest/initializeANE()[/Users/stevewarren/Clients/Speakaboos/git_repositories/ANESampleProject/TEST_AndroidAIR/src/ANESampleTest.as:198] 
    at ANESampleTest/onAddedToStage()[/Users/stevewarren/Clients/Speakaboos/git_repositories/ANESampleProject/TEST_AndroidAIR/src/ANESampleTest.as:131] 
    at runtime::ContentPlayer/loadInitialContent() 
    at runtime::ContentPlayer/playRawContent() 
    at runtime::ContentPlayer/playContent() 
    at runtime::AppRunner/run() 
    at AppEntryCommon/run() 
    at global/runtime::AndroidMobileDeviceAppEntry()