2

我正在使用带有 ANE Distriqt Compass 的 Adob​​e Flash Professional CS5.5,我创建了一个简单的 .fla 项目并编写了几行 AS3 脚本。编译成功,但是当我在我的电脑上执行 .swf 文件时,一开始它总是说

"The native extension context could not be created"

我认为问题是由于我的 PC 缺少磁力计引起的,但是当我将代码打包成一个.apk文件并将其安装在我的 Android 设备上时,它说了同样的话。通过代码检查后,我发现Compass.init永远不会成功执行。

是我的项目,有人可以告诉我是什么导致了问题吗?
我尝试过了...

  • 将文件解压缩com.distriqt.Compass.ane为 .zip 文件。

  • 然后链接目录distriqt.extension.compass.default.swc
    下的文件META-INF/ANE/default

我也尝试了这个链接的解决方案,但这也不起作用。我从里到外搜索了谷歌,但似乎没有解决方案。

4

1 回答 1

2

该错误表明您没有正确地将 ANE 与您的应用程序打包在一起。

使用 CS5.5,您需要从命令行打包应用程序才能正确打包 ANE。CS5.5 不包括使用 ANE 打包应用程序的能力。

首先确保您已将扩展 ID 添加到应用程序描述符中:

<extensions>
    <extension>com.distriqt.Compass</extension>
</extensions>

添加扩展:

  • 将 ANE 文件的文件扩展名从 .ane 更改为 .swc。此步骤是必需的,以便 Flash Professional 可以找到该文件
  • 在 FLA 文件上选择文件 > 动作脚本设置
  • 选择“Library Path高级 ActionScript 3.0 设置”对话框中的选项卡
  • 选择浏览到 SWC 文件按钮
  • 浏览到 SWC 文件并选择打开。SWC 文件现在出现在“高级 ActionScript 3.0 设置”对话框的“库路径”选项卡中
  • 选择 SWC 文件后,选择按钮 Select Linkage Options For A Library(这看起来像面板上方圆圈中的小 i)。
  • 在“库路径项选项”对话框中,将“链接类型”更改为“外部”。

接下来,您需要在构建的应用程序的目录中打开一个命令行。该目录应包含:

  • 申请瑞士法郎:myApp.swf
  • 应用描述符:myApp-app.xml
  • 任何必需的文件,例如图标、Default.png
  • ANE(s)(在下面我们假设的子目录extensionsDir中)

此命令的详细信息取决于您正在开发的应用程序和您的目标平台。您应该查看以下 url 中的文档,以确定该命令应包含的环境的详细信息。

http://help.adobe.com/en_US/air/build/WS597e5dadb9cc1e0253f7d2fc1311b491071-8000.html

例如,以下命令将为 Android 创建一个 APK:

adt -package
    -target apk
    -storetype pkcs12 -keystore YOUR_SIGNING_KEY.p12
    myApp.apk
    myApp-app.xml
    myApp.swf icons
    -extdir extensionsDir

有关更多信息,请参阅此处的教程:https ://airnativeextensions.com/knowledgebase/tutorial/1

于 2017-02-04T21:05:17.587 回答