带有 Distriqt Compass 的 Adob​​e Flash Professional CS5.5(AS3) 总是说“无法创建本机扩展上下文”

Posted

技术标签:

【中文标题】带有 Distriqt Compass 的 Adob​​e Flash Professional CS5.5(AS3) 总是说“无法创建本机扩展上下文”【英文标题】:Adobe Flash Professional CS5.5(AS3) with Distriqt Compass always says "The native extension context could not created" 【发布时间】:2017-06-21 21:16:57 【问题描述】:

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

"The native extension context could not be created"

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

Here 是我的项目,谁能告诉我是什么原因导致的问题? 我试着...

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

然后链接文件distriqt.extension.compass.default.swcMETA-INF/ANE/default 目录下。

我也尝试了this link 的解决方案,但这也不起作用。我已经从里到外搜索了谷歌,但似乎没有任何解决方案。

【问题讨论】:

因为您有一个有效的答案,请使用 图标将给定的解决方案标记为已解决(以便其他人知道它有效)。谢谢。 如你所说,已经做到了。 【参考方案1】:

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

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

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

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

添加扩展:

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

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

应用程序swf:myApp.swf 应用程序描述符:myApp-app.xml 任何必需的文件,例如图标、Default.png ANE(在子目录中,我们将在下面假设 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

【讨论】:

好的,我尝试使用 ADT 打包我的 Android 应用程序,但出现错误“无法在此文件中加载证书”,这是我的 Packaging.bat:adt -package -target apk -storetype pkcs12 -keystore cro.p12 -storepass [P12_FILE_PASSWORD] camera_air_accelerometer_and_compass.apk camera_air-app.xml camera_air.swf -extdir C:\Users\Administrator\Documents\air 我使用了另一台机器并再次运行包装。这一次,.p12 文件通过了它,但还有另一个错误:“找不到目标平台的应用程序所需的本机扩展“com.distriqt.Compass”的实现。”。 您确定 com.distriqt.Compass.ane 文件在您的 extdir 中吗? 等等,.ane 文件但没有重命名 .swc 文件? No.. 您需要重命名 ANE 并在 flash 中使用它来获取您的 swf 构建。但是你需要用ane打包

以上是关于带有 Distriqt Compass 的 Adob​​e Flash Professional CS5.5(AS3) 总是说“无法创建本机扩展上下文”的主要内容,如果未能解决你的问题,请参考以下文章

Distriqt 分享应用价值

来自 distriqt 广告扩展的 Java 错误

distriqt NativeMaps AS3 API-填充多个标记示例

Distriqt分享ANE消息和网址没有出现在Facebook上

在 Compass 和 jQuery 中实现下拉菜单

ADO.NET 实体框架 - 带有实体框架 6 的 Oracle