Native Process无法在已编译的.air文件上启动;通过adl运行时工作正常

时间:2013-07-26 01:45:06

标签: air air-native-extension

工作代码:

在开发中的AIR项目上运行adl application.xml时,我的Native Process可以正常使用此代码:

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文件后,可执行文件无法启动。

调试:

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

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

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

  

错误:错误#3219:无法启动NativeProcess。 “当前个人资料不支持。”

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

先决条件:

Adob​​e网站上的Packaging a desktop native installer文章指出:

  

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

继续:

  

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

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

编译:

基本上,您的.air文件必须才能编译为本机安装程序(即.exe.dmg.deb或{{1为了让你使用本机进程(以及其他一些东西)。

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

.rpm

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

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

  

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

1。这是Adobe的一个错字,应该读取RPM,而不是RPG。

  

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