根据这篇指导文档的描述https://gitee.com/openharmony/docs/blob/OpenHarmony-4.0-Release/zh-cn/application-dev/reference/apis/js-apis-inner-application-abilityDelegator.md#executeshellcommand,我实现了executeShellCommand相关的流程,已经
import AbilityDelegatorRegistry from '@ohos.app.ability.abilityDelegatorRegistry';
但触发运行时crash,日志如下图,Cannot read property executeShellCommand of null,请问是怎么回事呢?
首先,这个接口只支持自动化测试框架arkxtest使用,普通应用无法直接调用,参考https://docs.openharmony.cn/pages/v4.1/zh-cn/application-dev/reference/apis-test-kit/js-apis-inner-application-shellCmdResult.md
ShellCmdResult
本模块提供Shell命令执行结果的能力。
说明:
本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
本模块接口仅可在自动化测试框架arkxtest中使用。
其次,data目录没权限,换个目录试一下,虽然是shell形式在执行指令,但本质上还是在沙箱路径内,只有对context.含有的dir文件夹有读写权限。
最后,如果想实现普通应用执行shell,目前唯一可用的系统接口是runCmd。但是如果你只是新建文件夹之类的操作,没有必要使用shell。具体runCmd如何使用可以参考我的文章中的开源地址:OpenHarmony开发板测评平台介绍_会飞的企鹅12138-Laval社区
data目录没权限,换个目录试一下,虽然是shell形式在执行指令,但本质上还是在沙箱路径内,只有对context.含有的dir文件夹有读写权限。