讨论广场 问答详情
运行executeShellCommand时crash
Kx_Kevin 2024-11-04 14:36:57
118 评论 分享

根据这篇指导文档的描述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,请问是怎么回事呢?

 

 

118 评论 分享
写回答
全部评论(7)

首先,这个接口只支持自动化测试框架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社区

2024-11-04 17:39:08
2024-11-05 14:25:05
非常感谢,我研究一下这个runCmd内容
2024-11-05 14:25:05

data目录没权限,换个目录试一下,虽然是shell形式在执行指令,但本质上还是在沙箱路径内,只有对context.含有的dir文件夹有读写权限。

2024-11-04 17:15:03
引用:“你好,我试了context.filesDir下面的路径做mkdir操作,也是弹出这个错误,看上去不是权限问题,可能就是没法识别这个executeShellCommand?”
看5楼我回答的,这个接口只能测试用,普通应用不能执行用
2024-11-05 11:35:13
2024-11-05 11:09:42
你好,我试了context.filesDir下面的路径做mkdir操作,也是弹出这个错误,看上去不是权限问题,可能就是没法识别这个executeShellCommand?
2024-11-05 11:09:42
1 楼

这个是在哪里调用的 我看是在Download页面 这块有切过线程吗

2024-11-04 16:58:30
2024-11-04 19:07:12
运行这块的步骤不会切线程,有另一个worker线程是跑下载数据用的
2024-11-04 19:07:12