我使用AdobeFlashProfessionalCS5.5和一个电子发行版指南针,我创建了一个简单的.fla项目,并编写了几行AS3脚本。编译是成功的,但是当我在我的PC上执行.swf文件时,开始它总是说
"The native extension context could not be created"
我认为这个问题是由于我的电脑没有磁强计造成的,但是当我把我的代码打包成一个.apk文件并安装到我的android设备上时,它说了同样的话。在检查代码之后,我发现Compass.init从未成功执行。
Here是我的项目,有人能告诉我问题的原因吗?
我试着…
将文件com.distriqt.Compass.ane解压缩为.zip文件。
然后链接文件distriqt.extension.compass.default.swc
META-INF/ANE/default目录下。
我也尝试了this link中的解决方案,但这也不起作用。我已经彻底搜索过谷歌,但似乎没有解决办法。

最佳答案

该错误表示您没有正确地将ane与应用程序打包在一起。
使用cs5.5,您需要从命令行打包应用程序,以便正确打包ane。cs5.5没有包含使用ane打包应用程序的能力。
首先确保已将扩展标识添加到应用程序描述符中:

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

要添加扩展名:
将ane文件的扩展名从.ane更改为.swc。此步骤是必要的,以便flash professional能够找到文件
在fla文件上选择file>actionscript设置
在Advanced ActionScript3.0设置对话框中选择Library Path选项卡
选择“浏览到SWC文件”按钮
浏览到swc文件并选择open。SWC文件现在出现在“高级ActionScript3.0设置”对话框的“库路径”选项卡中
选择swc文件后,选择按钮select linkage options for a library(这看起来像面板上方圆圈中的一个小i)。
在“库路径项选项”对话框中,将链接类型更改为“外部”。
接下来,您需要在构建的应用程序的目录中打开一个命令行。目录应包含:
应用程序swf:myApp.swf
应用程序描述符:myApp-app.xml
任何必需的文件,如icons,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

10-07 22:18