AIR NativeProcess на Mac выдает ошибку: 3219, все решения не работают

Я прочитал большинство решений для этой ошибки, и ни одно из них не подходит.

Я запускаю базовое приложение AS3 в FlashBuilder на OS-X.

  • дескриптор установлен в extendedDesktop
  • установил профиль в FB на «extendedDesktop»
  • публикую как «подписанный собственный установщик»
  • I've tried launching the file from both:
    • app:/demo.sh
    • файл:///Пользователи/visualife/Desktop/AE/demo.sh
  • целевой файл установлен на 777 (исполняемый)
  • целевой файл работает нормально при прямом нацеливании
  • я запускаю exe на той же ОС и машине, на которой он создан
  • изменение файла demo.sh на jpg и т. д. ничего не меняет

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

вся помощь очень ценится!

Я включил свой код ниже:

package {
    import flash.desktop.NativeProcess;
    import flash.desktop.NativeProcessStartupInfo;
    import flash.display.Sprite;
    import flash.errors.IllegalOperationError;
    import flash.events.Event;
    import flash.events.IOErrorEvent;
    import flash.events.NativeProcessExitEvent;
    import flash.events.ProgressEvent;
    import flash.filesystem.File;
    import flash.text.TextField;

    public class VauxhallController extends Sprite {

        private var debug_txt:TextField;

        public var process:NativeProcess;
        private var sh:File;

        public function VauxhallController() {
            if (stage) {
                init();
            } else {
                this.addEventListener(Event.ADDED_TO_STAGE, init);
            }
        }

        private function init($e:Event=null):void {
            this.removeEventListener(Event.ADDED_TO_STAGE, init);

            build();

            if (NativeProcess.isSupported) {
                initListeners();

                debugMe("Native process supported");

                go();
            } else {
                debugMe("Native not supported");
            }
        }

        private function build():void {
            // debug
            debug_txt   = new TextField();
            debug_txt.width = 300;
            debug_txt.height= 600;
            this.addChild(debug_txt);

        }
        private function initListeners():void { }
        private function go():void {
            runShellFile();
        }

        private function runShellFile():void {
            debugMe("runShellFile");
            var nativeProcessStartupInfo:NativeProcessStartupInfo = new NativeProcessStartupInfo();
            var essArgs:Vector.<String> = new Vector.<String>();            
            var file:File; 

            file    = File.desktopDirectory.resolvePath("AE/demo.sh");
            debugMe("path|"+ File.desktopDirectory.resolvePath("AE/demo.sh").url);

            nativeProcessStartupInfo.executable = file;
            nativeProcessStartupInfo.workingDirectory   = File.desktopDirectory;
            nativeProcessStartupInfo.executable = file;

            process = new NativeProcess();
            process.addEventListener(ProgressEvent.STANDARD_OUTPUT_DATA, onOutputData);
            process.addEventListener(ProgressEvent.STANDARD_ERROR_DATA, onErrorData);
            process.addEventListener(NativeProcessExitEvent.EXIT, onExit);
            process.addEventListener(IOErrorEvent.STANDARD_OUTPUT_IO_ERROR, onIOError);
            process.addEventListener(IOErrorEvent.STANDARD_ERROR_IO_ERROR, onIOError);

            try {
                process.start(nativeProcessStartupInfo);
            } catch (error:IllegalOperationError) {
                debugMe(error.toString());
            } catch (error:ArgumentError) {
                debugMe(error.toString());
            } catch (error:Error) {
                debugMe(error.toString());
            }

            debugMe("# DONE");
        }

        public function onOutputData(event:ProgressEvent):void {    debugMe("Got: "+ process.standardOutput.readUTFBytes(process.standardOutput.bytesAvailable));   }
        public function onErrorData(event:ProgressEvent):void {     debugMe("ERROR: "+ process.standardError.readUTFBytes(process.standardError.bytesAvailable));   }
        public function onExit(event:NativeProcessExitEvent):void { debugMe("Process exited with: "+ event.exitCode);   }
        public function onIOError(event:IOErrorEvent):void {        debugMe("IOError: "+ event.toString());             }

        private function debugMe(_str:String):void {    debug_txt.appendText(_str +"\n");   }
    }
}

person VisualifeDC    schedule 06.12.2014    source источник
comment
выложи всю ошибку пожалуйста.   -  person BotMaster    schedule 08.12.2014
comment
Привет, BotMaster, к сожалению, отслеживание ошибки - это просто Ошибка: 3219, похоже, нет никакой дополнительной информации, если только я ее не упустил... для подтверждения: код компилируется нормально, ошибка во время выполнения   -  person VisualifeDC    schedule 08.12.2014


Ответы (2)


Вы читали эту статью? http://www.actionscripterrors.com/?p=2527

<supportedProfiles>extendedDesktop desktop</supportedProfiles>
person mika    schedule 09.12.2014
comment
да, Мика, спасибо за предложение, но это одна из статей, которым я следовал изначально, и, следовательно, перечисленные выше вещи, которые я пробовал. Но это все еще не работает. - person VisualifeDC; 09.12.2014
comment
Является ли путь из debugMe(path|... действительным? - person mika; 09.12.2014
comment
да, приложение отслеживает: file:///Users/visualife/Desktop/AE/demo.sh, который при копировании в Finder запускает правильный файл - person VisualifeDC; 09.12.2014
comment
Странно, я протестировал ваш код, и он отлично работает с релизной сборкой: Собственный процесс поддерживает runShellFile path|file:///Users/mika/Desktop/AE/run.sh # DONE Got: OK! - person mika; 10.12.2014
comment
В самом деле? Вот это да. спасибо за проверку Мика. А run.sh запустился? есть шанс, что вы могли бы поделиться своим источником, так как я должен что-то упустить в настройке. можете написать мне прямо на [email protected], если это проще. - person VisualifeDC; 10.12.2014
comment
Я вышлю вам zip архив в ближайшее время - person mika; 10.12.2014

У меня такая же ошибка, и в моем случае это потому, что я пытаюсь открыть .exe на MacOS. Убедитесь, что ваш сценарий demo.sh взаимодействует с файлами .exe.

person Gabriel L Martinez    schedule 22.08.2019