不支持AIR 2.0 NativeProcess问题

时间:2010-06-29 07:26:00

标签: flex process air native exe

我已经构建了一个使用nativeProcess打开exe的应用程序。

Flex Builder 3中的应用程序会运行whitout错误。

然后当我在.air中导出aplicaction AIR并在开发者pc或其他电脑上安装应用程序时出现问题。

当我按下按钮打开.exe时,会出现消息“不支持本机进程”。

我使用的main.mxml中的代码:

if (NativeProcess.isSupported)
            {
                var file:File = new File("app:/config/AbrirAplicacion.exe");
                var nativeProcessStartupInfo:NativeProcessStartupInfo = new NativeProcessStartupInfo();
                nativeProcessStartupInfo.executable = file;

                process = new NativeProcess();
                process.start(nativeProcessStartupInfo);
                process.standardInput.writeUTFBytes(textReceived.text+"\n");
                process.addEventListener(ProgressEvent.STANDARD_OUTPUT_DATA, onOutputData);
                process.addEventListener(ProgressEvent.STANDARD_INPUT_PROGRESS, inputProgressListener);
            }
            else
            {
                textReceived.text = "NativeProcess not supported.";
            }

我做错了什么想法?

4 个答案:

答案 0 :(得分:3)

NativeProcess仅在将应用程序编译为本机二进制文件时可用,而不是.air安装程序。

答案 1 :(得分:1)

您必须将 supportedProfiles-tag 设置为“ extendedDesktop ”才能使用Native Process。

在app.xml中输入/取消注释以下这一行:

<supportedProfiles>extendedDesktop</supportedProfiles>

答案 2 :(得分:0)

NativeProcess可以使用Air2进行编译,这非常棘手。问题是你必须COMPLETLEY覆盖你的Flex SDK和新的Air2。令人惊讶的是,根据this link,您无法通过查找器执行此操作,而应通过终端执行此操作。在Mac:

  1. Air SDK下载SDK并将其放在文件夹1中。
  2. 制作Flex SDK的副本并将其放在文件夹2上(在flex Builder sdks文件夹中)
  3. 在终端中写下ditto -V folder1 folder2以覆盖它们。
  4. 现在转到项目的首选项并选择folder2作为sdk(现在它与folder1重叠)。

    此外,您可能需要将说明更改为:

    http://ns.adobe.com/air/application/2.0
    

    Installing the Adobe AIR 2 SDK in Eclipse有很好的描述(检查第3部分)。

    希望有所帮助。

答案 3 :(得分:0)

解决方案

  

使用本机签名而非AIR签名导出