0

工作代码:

adl application.xml在开发中的 AIR 项目上运行时,我的本机进程使用以下代码可以正常工作:

var os = air.Capabilities.os.toLowerCase();
if(os.indexOf('win') >= 0)
    var exe = 'win/myExecutable.exe';
else if(os.indexOf('mac') >= 0)
    var exe = 'mac/myExecutable';
else if(os.indexOf('linux') >= 0)
    var exe = 'nix/myExecutable';

var file = air.File.applicationDirectory.resolvePath('res/somepath/' + exe);

var args = new air.Vector["<String>"]();
args.push('anArgument');
args.push('another');

var info = new air.NativeProcessStartupInfo();
info.executable = file;
info.arguments = args;

var process = new air.NativeProcess();
process.start(info);
process.closeInput();

使用此指令application.xml

<supportedProfiles>extendedDesktop desktop</supportedProfiles>

问题:

将我的应用程序编译成.air文件后,可执行文件无法启动。

调试:

添加一个名为debugto的空文件C:\Program Files (x86)\My App\My App\META-INF\AIR,并添加一个名为mm.cfgto的文件,%USERPROFILE%其中包含以下内容:

ErrorReportingEnable=1
MaxWarnings=1000
SuppressDebuggerExceptionDialogs=1
TraceOutputFileEnable=1

以下输出被写入%USERPROFILE%\AppData\Roaming\Macromedia\Flash Player\Logs\flashlog.txt

错误:错误 #3219:无法启动 NativeProcess。“当前配置文件不支持。”

我怎样才能解决这个问题?

4

1 回答 1

2

先决条件:

Adobe 网站上的打包桌面原生安装程序文章指出:

使用本机应用程序安装程序安装的应用程序称为扩展桌面配置文件应用程序。

它继续:

当您创建本机安装程序来分发 AIR 应用程序时,该应用程序将获得以下功能:

  • NativeProcess它可以使用该类启动本机进程并与之交互。

编译:

本质上,您的.air文件必须编译为本地安装程序(即.exe、或文件) .dmg,以便您使用本地进程(以及其他一些东西)。.deb.rpm

为此,请安装 AIR SDK(有关如何执行此操作的信息,请参见我的其他答案,此处),然后从命令提示符运行此命令:

adt -package -target native "Output file.exe" "Input file.air"

您生成的安装程序(带有内置的 AIR 运行时)现在将与进程完美配合!

关于交叉兼容性的最后一句话:

您必须在与要生成的本机安装程序文件相同的操作系统上使用 ADT。因此,要为 Windows 创建 EXE 文件,请在 Windows 上运行 ADT。要为 Mac OS 创建 DMG 文件,请在 Mac OS 上运行 ADT。要为 Linux 创建 DEB 或 RPG 1文件,请在 Linux 上从 AIR 2.6 SDK 运行 ADT。

1.这是 Adob​​e 的拼写错误,应阅读 RPM,而不是 RPG。

如果您希望文件在已安装的应用程序中可执行,请确保在打包应用程序时它在文件系统上是可执行的。(在 Mac 和 Linux 上,如果需要,您可以使用 chmod 设置可执行标志。)

于 2013-07-26T01:45:05.703 回答