适用于Android的Adobe air 3.0 ANE,null ExtensionContext?

时间:2011-11-07 01:08:49

标签: android actionscript-3 flex air air-native-extension

我一直在使用Adobe for Air 3.0在Android上的原生扩展的振动示例。

我编译了ANE并打包了.apk。

我遇到的问题是actionscript库获得了一个null ExtensionContext。

我尝试使用adt -package -target apk-debug创建.apk,以便我可以在logcat中看到actionscript跟踪,这就是我发现null错误的地方。

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

extContext为null,并在以下.call()方法中崩溃。

所有来源都是来自示例的库存,我没有改变任何东西。

有没有人有任何使用Adobe的ANE示例在Windows机器上工作的经验?大多数示例都适用于Mac。

3 个答案:

答案 0 :(得分:1)

好主。多浪一个星期。

我正在使用gotoandlearn.com的一个教程告诉我,通过构建脚本,使用jar命令将我的原生扩展名放入jar中。

我只是使用了自动构建在NativeAndroid / bin /文件夹中的.jar,一切都很顺利。

事实证明,该教程已经过时,对构建不再有用了。

答案 1 :(得分:0)

另外一条评论。您需要设置目标平台和复选框Is Library from Properties - > Android在bin文件夹中获取编译的jar。

P.S。 gotoandlearn中的.sh可以在Windows的Powershell中执行,只需对运行的bat文件进行微小更改:(cmd“/ c adt.bat”)

答案 2 :(得分:0)

我正在编写的Native Extension上遇到完全相同的问题,并且已经开源了。我使用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()