2011-11-07 78 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()