带有 Distriqt Compass 的 Adobe Flash Professional CS5.5(AS3) 总是说“无法创建本机扩展上下文”
Posted
技术标签:
【中文标题】带有 Distriqt Compass 的 Adobe 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 的 Adobe 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.swc
在META-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 的 Adobe Flash Professional CS5.5(AS3) 总是说“无法创建本机扩展上下文”的主要内容,如果未能解决你的问题,请参考以下文章
distriqt NativeMaps AS3 API-填充多个标记示例