带有 Distriqt Compass 的 Adobe Flash Professional CS5.5(AS3) 总是显示 "The native extension context could not created"
Adobe Flash Professional CS5.5(AS3) with Distriqt Compass always says "The native extension context could not created"
我将 Adobe Flash Professional CS5.5 与 ANE Distriqt Compass 一起使用,我创建了一个简单的 .fla 项目并编写了几行 AS3 脚本。编译成功,但是当我在我的电脑上执行.swf文件时,一开始它总是说
"The native extension context could not be created"
我以为问题是因为我的电脑缺少磁力计,但是当我把我的代码打包成一个.apk
文件并安装到我的[=42] =] 设备,它说同样的话。查看代码后,我发现 Compass.init
永远不会执行成功。
Here是我的项目,谁能告诉我是什么原因导致的问题?
我试着...
将文件 com.distriqt.Compass.ane
解压缩为 .zip 文件。
然后链接文件distriqt.extension.compass.default.swc
在 META-INF/ANE/default
目录下。
我也尝试了 this link 的解决方案,但那也不起作用。 Google 里里外外都找遍了,好像没有办法。
该错误表明您没有将 ANE 正确打包到您的应用程序中。
对于 CS5.5,您需要从命令行打包您的应用程序才能正确打包 ANE。 CS5.5 不包括使用 ANE 打包应用程序的功能。
首先确保您已将扩展程序 ID 添加到您的应用程序描述符中:
<extensions>
<extension>com.distriqt.Compass</extension>
</extensions>
要添加扩展名:
- 将 ANE 文件的文件扩展名从 .ane 更改为 .swc。此步骤是必要的,以便 Flash Professional 可以找到文件
- Select FLA 文件上的文件 > ActionScript 设置
- Select“高级 ActionScript 3.0 设置”对话框中的
Library Path
选项卡
- Select 浏览到 SWC 文件按钮
- 浏览到 SWC 文件并 select 打开。 SWC 文件现在显示在“高级 ActionScript 3.0 设置”对话框的“库路径”选项卡中
- 使用 SWC 文件 selected,select 按钮 Select LinkA 库的年龄选项(这看起来像面板)。
- 在“库路径项选项”对话框中,将 Link 类型更改为外部。
接下来您需要在构建的应用程序目录中打开一个命令行。该目录应包含:
- 申请瑞士法郎:
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
我将 Adobe Flash Professional CS5.5 与 ANE Distriqt Compass 一起使用,我创建了一个简单的 .fla 项目并编写了几行 AS3 脚本。编译成功,但是当我在我的电脑上执行.swf文件时,一开始它总是说
"The native extension context could not be created"
我以为问题是因为我的电脑缺少磁力计,但是当我把我的代码打包成一个.apk
文件并安装到我的[=42] =] 设备,它说同样的话。查看代码后,我发现 Compass.init
永远不会执行成功。
Here是我的项目,谁能告诉我是什么原因导致的问题?
我试着...
将文件
com.distriqt.Compass.ane
解压缩为 .zip 文件。然后链接文件
distriqt.extension.compass.default.swc
在META-INF/ANE/default
目录下。
我也尝试了 this link 的解决方案,但那也不起作用。 Google 里里外外都找遍了,好像没有办法。
该错误表明您没有将 ANE 正确打包到您的应用程序中。
对于 CS5.5,您需要从命令行打包您的应用程序才能正确打包 ANE。 CS5.5 不包括使用 ANE 打包应用程序的功能。
首先确保您已将扩展程序 ID 添加到您的应用程序描述符中:
<extensions>
<extension>com.distriqt.Compass</extension>
</extensions>
要添加扩展名:
- 将 ANE 文件的文件扩展名从 .ane 更改为 .swc。此步骤是必要的,以便 Flash Professional 可以找到文件
- Select FLA 文件上的文件 > ActionScript 设置
- Select“高级 ActionScript 3.0 设置”对话框中的
Library Path
选项卡 - Select 浏览到 SWC 文件按钮
- 浏览到 SWC 文件并 select 打开。 SWC 文件现在显示在“高级 ActionScript 3.0 设置”对话框的“库路径”选项卡中
- 使用 SWC 文件 selected,select 按钮 Select LinkA 库的年龄选项(这看起来像面板)。
- 在“库路径项选项”对话框中,将 Link 类型更改为外部。
接下来您需要在构建的应用程序目录中打开一个命令行。该目录应包含:
- 申请瑞士法郎:
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