Flex 4 и AIR 2 NativeProcess API: не удалось запустить NativeProcess

Я пытаюсь создать приложение, используя новый API AIR 2 NativeProcess, взятый из небольшого видео Брента:

http://tv.adobe.com/watch/adc-presents/preview-command-line-integration-in-adobe-air-2

но у меня возникают некоторые проблемы, а именно, я получаю сообщение об ошибке каждый раз, когда пытаюсь запустить свой процесс.

Я использую OS X 10.5.8 и хочу запустить diskutil и получить список всех смонтированных томов.

Вот код, который я пытаюсь:

        private function unmountVolume():void
        {
            if(!this.deviceMounted){ return; }

            // OS X
            if (Capabilities.os.indexOf("Mac") == 0){
                diskutil = new NativeProcess();

                // TODO: should really add event listeners
                // in case of error

                diskutil.addEventListener(ProgressEvent.STANDARD_OUTPUT_DATA, onDiskutilOut);

                var startupInfo:NativeProcessStartupInfo = new NativeProcessStartupInfo();
                startupInfo.executable = new File('/usr/sbin/diskutil');

                var args:Vector.<String> = new Vector.<String>();
                args.push("list");
                //args.push(this.currentVolumeNativePath);

                startupInfo.arguments = args;
                diskutil.start(startupInfo);
            }
        }

который кажется довольно простым и основан на его примере с grep.

Есть идеи, что я делаю неправильно?


person ashgromnies    schedule 16.12.2009    source источник


Ответы (1)


Проблема заключалась в том, что в мой дескриптор не была добавлена ​​следующая строка:

<supportedProfiles>extendedDesktop</supportedProfiles>

Это действительно должно быть лучше задокументировано :) Об этом не упоминалось в видео.

person ashgromnies    schedule 16.12.2009
comment
Я думаю, что фактический тег будет таким: ‹supportedProfiles› расширенный рабочий стол рабочего стола ‹/supportedProfiles› Кроме того, если вы установите пакет .air приложения, которое использует собственный процесс, вы также получите ошибку собственного процесса. Не поддерживается, потому что если ваше приложение открывает какой-либо собственный процесс, вы должны создать собственный установщик этого приложения, например .exe для Windows, .deb для Linux. - person Mudasir Bhutto; 10.04.2011