【发布时间】:2015-08-23 08:11:12
【问题描述】:
我正在开发一个 AIR 应用程序,该应用程序使用我为同一项目开发的 Windows 原生扩展。该应用程序调用一个名为 pingFunction 的 ANE 方法,并向其传递一个字符串,其中包含 pingFunction 将执行 ping 测试的 IP 地址。
该应用程序及其 ANE 在 Flash Builder 上运行良好,即使在发布后,它们在开发 PC 上仍然像魅力一样运行。问题是我在另外两台计算机上尝试过,应用程序抛出以下错误:
ArgumentError: Error #3500: The extension context does not have a method with the name pingFunction.
at flash.external::ExtensionContext/_call()
at flash.external::ExtensionContext/call()
at com.mycompanyname.myappname::MyAppName/sendPing()[...
一开始我认为我使用的 DLL 是我使用 Visual Studio 上的 Debug 配置而不是 Release 配置编译的,因为我读到有时 DLL 的调试版本可以使用外部 DLL。因此,我对其进行了更改并将整个库重新构建为发布版本。对我来说可悲的是,我仍然遇到同样的结果。
另外,我尝试将 AIR 应用程序和 ANE 的 swf-version 更改为我正在使用的 AIR SDK 版本 (14.0),但又遇到了同样的错误。
开发计算机正在运行 Windows 8.1 和其他应用程序无法运行的计算机,Windows 7 和 Windows 7 Service Pack 1。
关于为什么会发生这种情况的任何想法?任何可能使我走上正轨的问题或 cmet 将不胜感激。
【问题讨论】:
-
Windows ANE 的 DLL 必须与应用程序 iirc 位于同一文件夹中。
-
@DodgerThud 嗨,“在同一个文件夹中”是什么意思?什么应该在同一个文件夹中?因为 ANE 应该从
libsforlder 链接,而应用程序的其余部分位于source文件夹中。 -
我的意思是在您的安装位置,用户安装它的位置,特别是我相信的 .swf 所在的文件夹。至少我记得是这样,明天我会在办公室查找我自己的 Windows ANE。
-
@DodgerThud 谢谢。我会很感激的。但是ANE不应该由Flash Builder打包并自动安装吗?
-
是的,这就是它“应该”工作的方式,但我记得 Windows ANE 有一些不同之处。虽然这可能是针对外部 DLL(例如,不是您自己制作的 DLL)。
标签: c++ actionscript-3 dll air ane