Flutter Dart Process.run 未处理异常:ProcessException:系统找不到指定的文件

问题描述

我正在尝试使用 dart 的 Process.run

运行命令行

这是我的代码

var result = await Process.run('axmldec',[ '-o','C:/test/output.xml','C:/test/AndroidManifest.xml' ]);

认为问题是斜线/所以我也试过这个

var result = await Process.run('axmldec','C:\\test\\output.xml','C:\\test\\AndroidManifest.xml' ]);

尝试了 C: 和 D: 驱动器,但没有运气。我得到的错误

Command: axmldec -o D:/test/output.xml D:/test/AndroidManifest.xml
#0      _ProcessImpl._start (dart:io-patch/process_patch.dart:390:33)
#1      Process.start (dart:io-patch/process_patch.dart:36:20)
#2      _runNonInteractiveProcess (dart:io-patch/process_patch.dart:565:18)
#3      Process.run (dart:io-patch/process_patch.dart:47:12)
#4      Home._testUnzip (package:apk_analysis/main.dart:112:32)
#5      Home.build.<anonymous closure>.<anonymous closure> (package:apk_analysis/main.dart:60:25)
#6      _rootRunUnary (dart:async/zone.dart:1362:47)
#7      _CustomZone.runUnary (dart:async/zone.dart:1265:19)
#8      _FutureListener.handleValue (dart:async/future_impl.dart:152:18)
#9      Future._propagatetoListeners.handleValueCallback (dart:async/future_impl.dart:704:45)
#10     Future._propagatetoListeners (dart:async/future_impl.dart:733:32)
#11     Future._completeWithValue (dart:async/future_impl.dart:539:5)
#12     _completeOnAsyncReturn (dart:async-patch/async_patch.dart:254:13)
#13     FilePickerCross.importMultipleFromStorage (package:file_picker_cross/file_picker_cross.dart)
<asynchronous suspension>

当我在命令行中运行相同的命令时,它可以正常工作。

解决方法

我找到了解决方案。问题似乎是命令本身的路径“axmldec”

尽管拥有环境变量,但 dart 进程无法识别它。我使用了完整路径并且它有效

var result = Process.run('c:\\tool\\axmldec.exe',[ '-o','D:\\test\\output.xml','D:\\test\\AndroidManifest.xml' ]);

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...