• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# aa工具
2
3Ability assistant(Ability助手,简称为aa),是用于启动应用和启动测试用例的工具,为开发者提供基本的应用调试和测试能力,例如启动应用组件、强制停止进程、打印应用组件相关信息等。
4
5## 环境要求
6
7在使用本工具前,开发者需要先获取<!--Del-->[<!--DelEnd-->hdc工具<!--Del-->](../../device-dev/subsystems/subsys-toolchain-hdc-guide.md)<!--DelEnd-->,执行hdc shell。
8
9本文中命令介绍均基于交互式命令环境。如果直接执行hdc shell [aa命令],则需要采用""来包裹aa命令,确保命令中的传参能被正确识别。示例如下:
10
11```bash
12# 启动命令
13hdc shell "aa start -A ohos.want.action.viewData -U 'https://www.example.com'"
14
15# 应用调试/调优命令
16hdc shell "aa process -b com.example.myapplication -a EntryAbility -p perf-cmd"
17```
18
19## aa工具命令列表
20
21| 命令 | 描述 |
22|--------|--------|
23| -h/help | 帮助命令。用于查询aa支持的命令信息。|
24| start | 启动命令。用于启动一个应用组件,目标组件可以是FA模型的PageAbility和ServiceAbility组件,也可以是Stage模型的UIAbility和ServiceExtensionAbility组件,且目标组件相应配置文件中的exported标签不能配置为false。|
25| stop-service | 停止命令。用于停止ServiceAbility。 |
26| dump<sup>(deprecated)</sup> | 打印命令。用于打印应用组件的相关信息。|
27| force-stop | 强制停止进程命令。通过bundleName强制停止一个进程。|
28| test | 启动测试框架命令。根据所携带的参数启动测试框架。 |
29| attach | 进入调试模式命令。通过bundleName使指定应用进入调试模式。|
30| detach | 退出调试模式命令。通过bundleName使指定应用退出调试模式。|
31| appdebug | 等待调试命令。用于设置、取消设置应用等待调试状态,以及获取处于等待调试状态的应用包名和持久化信息。等待调试状态只对debug类型应用生效。appdebug的设置命令只对单个应用生效,当重复设置时,应用包名与持久化状态会替换成最新设置内容。|
32| process | 应用调试/调优命令。对应用进行调试或调优,IDE用该命令集成调试和调优工具。|
33
34## 帮助命令(help)
35
36```bash
37# 显示帮助信息
38aa help
39```
40
41## 启动命令(start)
42
43启动一个应用组件,目标组件可以是FA模型的PageAbility和ServiceAbility组件,也可以是Stage模型的UIAbility和ServiceExtensionAbility组件,且目标组件相应配置文件中的exported标签不能配置为false。
44
45```bash
46# 显示启动Ability
47aa start [-d <deviceId>] [-a <abilityName> -b <bundleName>] [-m <moduleName>] [-D] [-R] [-S] [--pi <key> <integer-value>] [--pb <key> <bool-value: true/false/t/f大小写不敏感] [--ps <key> <value>] [--psn <key>] [--wl <windowLeft>] [--wt <windowTop>] [--wh <windowHeight>] [--ww <windowWidth>] [-p <perf-cmd>]
48
49# 隐式启动Ability。如果命令中的参数都不填,会导致启动失败。
50aa start [-d <deviceId>] [-U <URI>] [-t <type>] [-A <action>] [-e <entity>] [-D] [-R] [--pi <key> <integer-value>] [--pb <key> <bool-value: true/false/t/f大小写不敏感] [--ps <key> <value>] [--psn <key>] [--wl <windowLeft>] [--wt <windowTop>] [--wh <windowHeight>] [--ww <windowWidth>] [-p <perf-cmd>]
51```
52
53  **启动命令参数列表**
54
55  | 参数 | 参数说明              |
56  | -------- |-------------------|
57  | -h/--help | 帮助信息。             |
58  | -d | 可选参数,deviceId。    |
59  | -a | 可选参数,abilityName。 |
60  | -b | 可选参数,bundleName。  |
61  | -m | 可选参数,moduleName。  |
62  | -U | 可选参数,URI。         |
63  | -A | 可选参数,action。      |
64  | -e | 可选参数,entity。      |
65  | -t | 可选参数,type。        |
66  | --pi  | 可选参数,整型类型键值对。     |
67  | --pb  | 可选参数,布尔类型键值对。     |
68  | --ps  | 可选参数,字符串类型键值对。    |
69  | --psn | 可选参数,空字符串关键字。     |
70  | --wl | 可选参数,windowLeft,窗口左边距,单位px。<br>**约束:**<br>仅当2in1设备处于开发者模式下,且被启动应用采用调试签名时,该字段生效。|
71  | --wt | 可选参数,windowTop,窗口上边距,单位px。<br>**约束:**<br>仅当2in1设备处于开发者模式下,且被启动应用采用调试签名时,该字段生效。|
72  | --wh | 可选参数,windowHeight,窗口高度,单位px。<br>**约束:**<br>仅当2in1设备处于开发者模式下,且被启动应用采用调试签名时,该字段生效。|
73  | --ww | 可选参数,windowWidth,窗口宽度,单位px。<br>**约束:**<br>仅当2in1设备处于开发者模式下,且被启动应用采用调试签名时,该字段生效。|
74  | -R | 可选参数,调试时是否开启多线程错误检测。携带该参数代表开启,不携带代表关闭。<br>**说明:** 从API version 14开始,支持该参数。 |
75  | -S | 可选参数,调试时是否进入应用沙箱。携带该参数代表进入,不携带代表不进入。 |
76  | -D | 可选参数,调试模式。        |
77  | -p | 可选参数,调优命令。命令由调用方自定义。        |
78
79  **返回值**:
80
81  当启动成功时,返回"start ability successfully.";当启动失败时,返回"error: failed to start ability.",同时会包含相应的失败信息。
82
83  **错误码**:
84
85  | 错误码ID | 错误信息 |
86  | ------- | -------- |
87  | 10103001 | Failed to verify the visibility of the target ability. |
88  | 10104001 | The specified ability does not exist. |
89  | 10105001 | Failed to connect to the ability service. |
90  | 10105002 | Failed to obtain ability information. |
91  | 10106002 | The target application does not support debug mode. |
92  | 10100101 | Failed to obtain application information. |
93  | 10100102 | The aa start command cannot be used to launch a UIExtensionAbility. |
94  | 10103101 | Failed to find a matching application for implicit launch. |
95  | 10103102 | The passed appCloneIndex is invalid. |
96  | 10106101 | The current ability will be placed in the queue to wait for the previous ability to finish launching. |
97  | 10106102 | The device screen is locked during the application launch. |
98  | 10106103 | The target application is an expired crowdtesting application. |
99  | 10106105 | The target application is under control. |
100  | 10106106 | The target application is managed by EDM. |
101  | 10106107 | The current device does not support using window options. |
102  | 10107102 | Permission verification failed for the specified process. |
103  | 10108101 | An internal error occurs while attempting to launch the ability. |
104
105  **示例**:
106
107  以隐式启动Ability为例。
108
109  > **说明:**
110  >
111  > 本例中仅介绍了部分字段的使用。关于Ability匹配的详细规则参考[显式Want与隐式Want匹配规则](../application-models/explicit-implicit-want-mappings.md)。
112
113
114  - **目标应用**:修改module.json5配置,为目标Ability配置uris。
115
116      ```json
117      {
118        "name": "TargetAbility",
119        // ......
120        "exported": true,
121        "skills": [
122          {
123            "actions":[
124              "ohos.want.action.viewData"
125            ],
126            "uris":[
127              {
128                "scheme": "myscheme",
129                "host": "www.test.com",
130                "port": "8080",
131                "path": "path",
132              }
133            ]
134          }
135        ]
136      }
137      ```
138
139
140  - **拉起方应用**: 隐式启动Ability。
141
142    - 如果需要拉起应用的页面,可以使用-U命令,示例如下:
143
144        ```bash
145        aa start -U myscheme://www.test.com:8080/path
146        ```
147
148    - 在上述基础上,如果需要携带参数,可以使用如下命令:
149
150        ```bash
151        aa start -U myscheme://www.test.com:8080/path --pi paramNumber 1 --pb paramBoolean true --ps paramString teststring  --psn paramNullString
152        ```
153
154      UIAbility获取传入参数示例如下:
155
156        ```ts
157        import UIAbility from '@ohos.app.ability.UIAbility';
158        import hilog from '@ohos.hilog';
159        import Want from '@ohos.app.ability.Want';
160
161        export default class TargetAbility extends UIAbility {
162          onCreate(want:Want, launchParam) {
163            hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onCreate');
164            let paramNumber = want.parameters.paramNumber
165            let paramBoolean = want.parameters.paramBoolean
166            let paramString = want.parameters.paramString
167            let paramNullString = want.parameters.paramNullString
168          }
169        }
170        ```
171
172    - 如果需要拉起浏览器并跳转指定页面,可以使用-A -U命令,示例如下:
173
174      本例中以`https://www.example.com`为例,请根据实际情况替换为真实的网址。
175
176        ```bash
177        aa start -A ohos.want.action.viewData -U https://www.example.com
178        ```
179
180
181## 停止命令(stop-service)
182
183用于停止ServiceAbility。
184
185```bash
186aa stop-service [-d <deviceId>] -a <abilityName> -b <bundleName> [-m <moduleName>]
187```
188
189  **停止命令参数列表**
190  | 参数 | 参数说明 |
191  | -------- | -------- |
192  | -h/--help | 帮助信息。 |
193  | -d | 可选参数,deviceId。 |
194  | -a | 必选参数,abilityName。 |
195  | -b | 必选参数,bundleName。 |
196  | -m | 可选参数,moduleName。 |
197
198  **返回值**:
199
200  当成功停止ServiceAbility时,返回"stop service ability successfully.";当停止失败时,返回"error: failed to stop service ability."。
201
202  **错误码**:
203
204  | 错误码ID | 错误信息 |
205  | ------- | -------- |
206  | 10103001 | Failed to verify the visibility of the target ability. |
207  | 10103201 | The target ability is not of the ServiceAbility type. |
208  | 10104001 | The specified ability does not exist. |
209  | 10105001 | Failed to connect to the ability service. |
210  | 10105002 | Failed to obtain ability information. |
211
212  **示例**:
213
214  ```bash
215  # 停止一个ServiceAbility
216  aa stop-service -a EntryAbility -b com.example.myapplication -m entry
217  ```
218
219## 打印命令(dump<sup>(deprecated)</sup>)
220
221用于打印应用组件的相关信息。
222
223```bash
224aa dump -a
225```
226
227> **说明:**
228>
229> aa dump命令从API version 7开始支持,从API version 9废弃,替换命令为[hidumper](../dfx/hidumper.md) -s AbilityManagerService。
230
231  **打印命令参数列表**
232  | 参数 | 二级参数 | 参数说明 |
233  | -------- | -------- | -------- |
234  | -h/--help | - | 帮助信息。 |
235  | -a/--all | - | 打印所有mission内的应用组件信息。 |
236  | -l/--mission-list | type(缺省打印全部) | 服务侧为了方便管理任务链,内部维护了4种类型的任务链。<br/>可取值:<br/>-&nbsp;NORMAL:正常启动的任务链(比如A拉起B拉起C, 则对应的任务链是A->B->C)<br/>-&nbsp;DEFAULT_STANDARD:已经被破坏的任务链中的任务, 启动模式为`multiton`的任务被放到该任务链中, 这里面的任务之间没有关联关系<br/>-&nbsp;DEFAULT_SINGLE:已经被破坏的任务链中的任务, 启动模式为`singleton`的任务被放到该任务链中, 这里面的任务之间没有关联关系<br/>-&nbsp;LAUNCHER:launcher的任务链 |
237  | -e/--extension | elementName | 打印扩展组件信息。 |
238  | -u/--userId | UserId | 打印指定UserId的栈信息,需要和其他参数组合使用,例如aa&nbsp;dump&nbsp;-a&nbsp;-u&nbsp;100、aa&nbsp;dump&nbsp;-d&nbsp;-u&nbsp;100。 |
239  | -d/--data | - | 打印DataAbility相关信息。 |
240  | -i/--ability | AbilityRecord&nbsp;ID | 打印指定应用组件详细信息。 |
241  | -c/--client | - | 打印应用组件详细信息,需要和其他参数组合使用,例如aa&nbsp;dump&nbsp;-a&nbsp;-c、aa&nbsp;dump&nbsp;-i&nbsp;21&nbsp;-c。 |
242  | -p/--pending | - | 打印pendingWant信息,需要和其他参数组合使用,例如aa&nbsp;dump&nbsp;-a&nbsp;-p。 |
243  | -r/--process | - | 打印应用进程信息,需要和其他参数组合使用,例如aa&nbsp;dump&nbsp;-a&nbsp;-r。 |
244
245  **错误码**:
246
247  | 错误码ID | 错误信息 |
248  | ------- | -------- |
249  | 10105001 | Failed to connect to the ability service. |
250
251  **示例**:
252
253  ```bash
254  # 打印所有mission内的应用组件信息
255  aa dump -a
256  ```
257
258  ![aa-dump-a](figures/aa-dump-a.png)
259
260
261  ```bash
262  # 打印所有任务链
263  aa dump -l
264  ```
265
266  ![aa-dump-l](figures/aa-dump-l.png)
267
268
269  ```bash
270  # 打印指定应用组件详细信息
271  aa dump -i 12
272  ```
273
274  ![aa-dump-i](figures/aa-dump-i.png)
275
276## 强制停止进程命令(force-stop)
277
278通过bundleName强制停止一个进程。
279
280```bash
281aa force-stop <bundleName>
282```
283
284  **返回值**:
285
286  当成功强制停止该进程时,返回"force stop process successfully.";当强制停止失败时,返回"error: failed to force stop process."。
287
288  **错误码**:
289
290  | 错误码ID | 错误信息 |
291  | ------- | -------- |
292  | 10105001 | Failed to connect to the ability service. |
293  | 10104002 | Failed to retrieve specified package information. |
294  | 10106401 | Failed to terminate the process. |
295  | 10106402 | Persistent processes cannot be terminated. |
296
297  **示例**:
298
299  ```bash
300  # 通过bundleName强制停止一个进程
301  aa force-stop com.example.myapplication
302  ```
303
304## 启动测试框架命令(test)
305
306根据所携带的参数启动测试框架。
307
308```bash
309aa test -b <bundleName> [-m <module-name>] [-p <package-name>] [-s class <test-class>] [-s level <test-level>] [-s size <test-size>] [-s testType <test-testType>] [-s timeout <test-timeout>] [-s <any-key> <any-value>] [-w <wait-time>] -s unittest <testRunner>
310```
311
312> **说明**:
313>
314> 关于class、level、size、testType等参数的详细说明请参见<!--RP2-->[aa test命令执行配置参数](../application-test/arkxtest-guidelines.md#cmd执行)<!--RP2End-->。
315
316  **启动测试框架命令参数列表**
317  | 参数 | 参数说明 |
318  | -------- | -------- |
319  | -h/--help | 帮助信息。 |
320  | -b | 必选参数,bundleName。 |
321  | -s unittest | 必选参数,testRunner。 |
322  | -p | 可选参数,testRunner的packageName。<br>**说明**:该可选参数仅可在FA模型下使用。 |
323  | -m | 可选参数,testRunner的moduleName。<br>**说明**:该可选参数仅可在Stage模型下使用。 |
324  | -s class | 可选参数,指定要执行的测试套或测试用例。 |
325  | -s level | 可选参数,指定要执行用例的用例级别。 |
326  | -s size | 可选参数,指定要执行用例的用例规模。 |
327  | -s testType | 可选参数,指定要执行用例的用例类型。 |
328  | -s timeout | 可选参数,测试用例执行的超时时间(单位ms),默认为5000。 |
329  | -s \<any-key> | 可选参数,任意键值对。 |
330  | -w | 可选参数,指定测试运行时间(单位ms)。 |
331  | -D | 可选参数,调试模式。 |
332
333  **返回值**:
334
335  当成功启动测试框架时,返回"user test started.";当启动失败时,返回"error: failed to start user test."和对应的错误信息。
336
337  **错误码**:
338
339  | 错误码ID | 错误信息 |
340  | ------- | -------- |
341  | 10104002 | Failed to retrieve specified package information. |
342  | 10105001 | Failed to connect to the ability service. |
343  | 10106002 | The target application does not support debug mode. |
344  | 10108501 | An internal error occurs during the execution of the aa test command. |
345
346  **示例**:
347
348  ```bash
349  # 启动测试框架
350  aa test -b com.example.myapplication -s unittest ActsAbilityTest
351  # 启动测试框架并设置moduleName
352  aa test -b com.example.myapplication -m entry_test -s unittest ActsAbilityTest
353  # 启动测试框架并指定超时时间
354  aa test -b com.example.myapplication -m entry_test -s timeout 10000 -s unittest ActsAbilityTest
355  ```
356
357## 进入调试模式命令(attach)
358
359通过bundleName使指定应用进入调试模式。
360
361```bash
362aa attach -b <bundleName>
363```
364
365  **进入调试模式命令参数列表**
366  | 参数 | 参数说明              |
367  | -------- |-------------------|
368  | -h/--help | 帮助信息。             |
369  | -b | 必选参数,bundleName。  |
370
371  **返回值**:
372
373  当应用成功进入调试模式时,返回"attach app debug successfully.";当给定参数不合法时,返回"fail: unknown option."并打印帮助信息。
374
375  **错误码**:
376
377  | 错误码ID | 错误信息 |
378  | ------- | -------- |
379  | 10105001 | Failed to connect to the ability service. |
380  | 10106001 | The current device is not in developer mode. |
381  | 10106002 | The target application does not support debug mode. |
382  | 10103601 | The specified bundleName does not exist. |
383  | 10108601 | An internal error occurs while attempting to enter/exit debug mode. |
384
385  **示例**:
386
387  ```bash
388  # 通过bundleName使指定应用进入调试模式
389  aa attach -b com.example.myapplication
390  ```
391
392## 退出调试模式命令(detach)
393
394通过bundleName使指定应用退出调试模式。
395
396```bash
397aa detach -b <bundleName>
398```
399
400  **退出调试模式命令参数列表**
401  | 参数 | 参数说明              |
402  | -------- |-------------------|
403  | -h/--help | 帮助信息。             |
404  | -b | 必选参数,bundleName。  |
405
406  **返回值**:
407
408  当应用成功退出调试模式时,返回"detach app debug successfully.";当给定参数不合法时,返回"fail: unknown option."并打印帮助信息。
409
410  **错误码**:
411
412  | 错误码ID | 错误信息 |
413  | ------- | -------- |
414  | 10105001 | Failed to connect to the ability service.|
415  | 10106001 | The current device is not in developer mode. |
416  | 10106002 | The target application does not support debug mode. |
417  | 10103601 | The specified bundleName does not exist. |
418  | 10108601 | An internal error occurs while attempting to enter/exit debug mode. |
419
420  **示例**:
421
422  ```bash
423  # 通过bundleName使指定应用退出调试模式
424  aa detach -b com.example.myapplication
425  ```
426
427## 等待调试命令(appdebug)
428
429用于设置、取消设置应用等待调试状态,以及获取处于等待调试状态的应用包名和持久化信息。等待调试状态只对debug类型应用生效。appdebug的设置命令只对单个应用生效,当重复设置时,应用包名与持久化状态会替换成最新设置内容。
430
431```bash
432aa appdebug -b <bundleName> [-p]
433```
434
435  **等待调试命令参数列表**
436  | 参数 | 二级参数 | 参数说明 |
437  | -------- | -------- | -------- |
438  | -h/--help | - | 帮助信息。 |
439  | -b/--bundlename | bundleName | 为指定应用设置等待调试状态。设置时,不会进行包名合法化的校验。 |
440  | -p/--persist | - | 可选参数;持久化标志位,加入该参数,代表持续设置应用为等待调试状态,无论重启设备、重装应用都可以持续生效;不加入该参数,代表等待调试状态仅可以在重启设备前生效一次。需要和-b参数组合使用,例如:aa&nbsp;appdebug&nbsp;-b&nbsp;&lt;bundleName&gt;&nbsp;-p。 |
441  | -c/--cancel | - | 取消等待调试状态。 |
442  | -g/--get | - | 获取等待调试状态的应用包名和持久化信息。 |
443
444  **返回值**:
445
446  当执行成功时,返回"app debug successfully.";当执行失败时,返回"error: failed to app debug.";当失败原因为非开发者模式时,返回"error: not developer mode."。
447
448  **错误码**:
449
450  | 错误码ID | 错误信息 |
451  | ------- | -------- |
452  | 10105003 | Failed to connect to the app service. |
453  | 10106001 | The current device is not in developer mode. |
454  | 10106701 | Cannot debug applications using a release certificate. |
455
456  **示例**:
457
458  ```bash
459  # 显示帮助信息
460  aa appdebug -h
461
462  # 为指定应用设置等待调试状态
463  aa appdebug -b com.example.myapplication [-p]
464
465  # 取消等待调试状态
466  aa appdebug -c
467
468  # 获取等待调试状态的应用包名和持久化信息
469  # 获取信息例: bundle name : com.example.publishsystem, persist : false
470  aa appdebug -g
471  ```
472
473## 应用调试/调优命令(process)
474
475对应用进行调试或调优,IDE用该命令集成调试和调优工具。
476
477```bash
478# 调试应用
479aa process -b <bundleName> -a <abilityName> [-m <moduleName>] [-D <debug-cmd>] [-S]
480
481# 调优应用
482aa process -b <bundleName> -a <abilityName> [-m <moduleName>] [-p <perf-cmd>] [-S]
483```
484
485  **应用调试/调优命令参数列表**
486  | 参数 | 参数说明 |
487  | -------- | -------- |
488  | -h/--help | 帮助信息。 |
489  | -b | 必选参数,bundleName。 |
490  | -a | 必选参数,abilityName。 |
491  | -m | 可选参数,moduleName。 |
492  | -p | 可选参数,调优命令,与-D必须二选一。命令由调用方自定义。 |
493  | -D | 可选参数,调试命令,与-p必须二选一。命令由调用方自定义。 |
494  | -S | 可选参数,进入应用沙箱。 |
495
496  **返回值**:
497
498  当执行成功时,返回"start native process successfully.";当执行失败时,返回"error: failed to start native process.";当给定参数不合法时,返回"error: option requires a value."并打印帮助信息。
499
500  | 错误码ID | 错误信息 |
501  | ------- | -------- |
502  | 10105002 | Failed to obtain ability information. |
503  | 10105003 | Failed to connect to the app service. |
504  | 10106002 | The target application does not support debug mode. |
505
506  **示例**:
507
508  ```bash
509  # 调试应用
510  aa process -b com.example.myapplication -a EntryAbility -D debug_cmd [-S]
511
512  # 调优应用
513  aa process -b com.example.myapplication -a EntryAbility -p perf-cmd [-S]
514  ```
515
516## aa工具错误码
517
518### 10103001 目标Ability可见性校验失败
519
520**错误信息**
521
522Failed to verify the visibility of the target ability.
523
524**错误描述**
525
526目标Ability可见性校验失败时,aa工具将返回该错误码。
527
528**可能原因**
529
530当目标应用在module.json5配置文件中的[abilities标签](../quick-start/module-configuration-file.md#abilities标签)/[extensionAbilities标签](../quick-start/module-configuration-file.md#extensionabilities标签)中的exported字段配置为false时,表示对应UIAbility组件/ExtensionAbility组件不可以被其他应用调用,也无法被aa工具命令拉起。
531
532**处理步骤**
533
534需要检查目标应用module.json5中对应Ability字段的exported配置是否为true,如果不为true,改为true重试即可。
535
536### 10104001 指定的Ability不存在
537**错误信息**
538
539The specified ability does not exist.
540
541**错误描述**
542
543当指定的Ability名称不存在时,aa工具将返回该错误码。
544
545**可能原因**
546
547指定的Ability未安装。
548
549**处理步骤**
550
5511. 检查aa命令的-a的参数abilityName和-b的参数bundleName是否正确。
5522. 检查指定的bundleName对应的应用是否安装。可使用如下命令查询已安装的应用列表,若该bundleName不在查询结果中,说明应用未安装成功。
553    ```
554    hdc shell bm dump -a
555    ```
5563. 多HAP应用需确认Ability所属的HAP是否已被安装。可使用如下命令查询应用的包信息,若安装的应用中没有对应的HAP和Ability,说明Ability所属的HAP未被安装。
557    ```
558    hdc shell bm dump -n 包名
559    ```
560
561### 10105001 Ability服务连接失败
562
563**错误信息**
564
565Failed to connect to the ability service.
566
567**错误描述**
568
569连接Ability服务失败。
570
571**可能原因**
572
573调用接口时Ability服务断开。
574
575**处理步骤**
576
577尝试重启设备重新执行。
578
579### 10105002 获取Ability信息失败
580
581**错误信息**
582
583Failed to obtain ability information.
584
585**错误描述**
586
587获取Ability信息失败。
588
589**可能原因**
590
591生成Ability请求时通过BMS获取AbilityInfo为空。
592
593**处理步骤**
594
595检查指定的bundleName对应的应用是否安装。可使用如下命令查询已安装的应用列表,若该bundleName不在查询结果中,说明应用未安装成功。
596
597  ```
598  hdc shell bm dump -a
599  ```
600
601### 10105003 App服务连接失败
602
603**错误信息**
604
605Failed to connect to the app service.
606
607**错误描述**
608
609App服务连接失败。
610
611**可能原因**
612
613调用接口时App服务断开。
614
615**处理步骤**
616
617尝试重启设备。
618
619### 10106001 当前设备不是开发者模式
620
621**错误信息**
622
623The current device is not in developer mode.
624
625**错误描述**
626
627当前设备不是开发者模式。
628
629**可能原因**
630
631当前设备不是开发者模式。
632
633**处理步骤**
634
635在设置中打开开发者模式。
636
637### 10106002 目标应用不支持Debug模式
638
639**错误信息**
640
641The target application does not support debug mode.
642
643**错误描述**
644
645目标应用不支持Debug模式。
646
647**可能原因**
648
649目标应用当前使用签名工具中“type”参数不为“debug”。
650
651**处理步骤**
652
653使用Debug签名证书重新签名,安装新签名出的HAP后,再尝试执行该该命令。
654
655### 10100101 获取应用信息失败
656
657**错误信息**
658
659Failed to obtain application information.
660
661**错误描述**
662
663从BMS查询到的App信息异常。
664
665**可能原因**
666
667从BMS查询到的App信息中应用名或包名异常。
668
669**处理步骤**
670
6711. 检查aa命令的-a的参数abilityName和-b的参数bundleName是否正确。
6722. 检查指定的bundleName对应的应用是否安装。可使用如下命令查询已安装的应用列表,若该bundleName不在查询结果中,说明应用未安装成功。
673    ```
674    hdc shell bm dump -a
675    ```
6763. 多HAP应用需确认Ability所属的HAP是否已被安装。可使用如下命令查询应用的包信息,若安装的应用中没有对应的HAP和Ability,说明Ability所属的HAP未被安装。
677    ```
678    hdc shell bm dump -n 包名
679    ```
680
681### 10100102 aa start命令无法拉起UIExtensionAbility
682
683**错误信息**
684
685The aa start command cannot be used to launch a UIExtensionAbility.
686
687**错误描述**
688
689aa工具无法拉起UIExtensionAbility。
690
691**可能原因**
692
693aa start命令不支持启动UIExtensionAbility。
694
695**处理步骤**
696
697确认目标Ability是否为UIExtensionAbility,aa start命令无法拉起UIExtensionAbility。
698
699### 10103101 隐式启动未查找到匹配应用
700
701**错误信息**
702
703Failed to find a matching application for implicit launch.
704
705**错误描述**
706
707隐式启动无法查找到匹配的Ability。
708
709**可能原因**
710
711* 如果为隐式启动,可能是启动参数配置有误或指定的HAP包未安装。
712* 如果为显式启动,可能是命令中指定了bundleName、却未指定abilityName。
713
714**处理步骤**
715
716* 如果为隐式启动,需要确保启动参数配置正确,且指定的HAP包已安装。
717* 如果为显式启动,需要确保abilityName传参正确。
718
719### 10103102 传入的AppCloneIndex是一个无效值
720
721**错误信息**
722
723The passed appCloneIndex is invalid.
724
725**错误描述**
726
727传入一个无效的AppCloneIndex,返回该错误码。
728
729**可能原因**
730
731aa start命令的参数中携带的AppCloneIndex是一个无效值,则返回该错误码。
732
733**处理步骤**
734
735确认AppCloneIndex是否合法。
736
737### 10106101 上一个Ability未启动完成,先缓存在队列中等待后续启动
738
739**错误信息**
740
741The current ability will be placed in the queue to wait for the previous ability to finish launching.
742
743**错误描述**
744
745需要启动的Ability过多,由于系统处理能力有限,会先将请求缓存在队列中,按照顺序依次处理。
746
747**可能原因**
748
749系统并发大。
750
751**处理步骤**
752
753无需处理,等待启动即可。
754
755### 10106102 启动应用时,设备处于锁屏状态
756
757**错误信息**
758
759The device screen is locked during the application launch.
760
761**错误描述**
762
763启动应用时,设备处于锁屏状态。
764
765**可能原因**
766
767启动应用时无法解锁屏幕。
768
769**处理步骤**
770
771解释屏幕后重新尝试即可。
772
773### 10106103 目标应用为到期众测应用
774
775**错误信息**
776
777The target application is an expired crowdtesting application.
778
779**错误描述**
780
781当目标应用为众测应用并且到达测试期限时,方法将返回该错误码。
782
783**可能原因**
784
785众测应用到期,无法打开。
786
787**处理步骤**
788
789请检查应用是否众测到期,已过有效期的众测应用无法启动。
790
791### 10106105 目标应用被管控
792
793**错误信息**
794
795The target application is under control.
796
797**错误描述**
798
799当目标应用受到应用市场管控时,方法将返回该错误码。
800
801**可能原因**
802
803目标应用疑似存在恶意行为,受到应用市场管控不允许启动。
804
805**处理步骤**
806
807建议卸载该应用。
808
809### 10106106 目标应用被EDM管控
810
811**错误信息**
812
813The target application is managed by EDM.
814
815**错误描述**
816
817当目标应用受到企业设备管理管控时,方法将返回该错误码。
818
819**可能原因**
820
821目标应用被企业管理服务设置为禁止启动。
822
823**处理步骤**
824
825该设备是一个企业设备,目标应用被设置为禁止启动,开发者无法处理。
826
827### 10106107 当前设备不支持使用窗口选项
828
829**错误信息**
830
831The current device does not support using window options.
832
833**错误描述**
834
835尝试使用窗口选项但设备不支持。
836
837**可能原因**
838
839用户使用aa start命令指定了WindowOptions,但设备不支持。
840
841**处理步骤**
842
843删除aa start命令中代表WindowOptions的参数wl、wt、wh、ww后重试。
844
845### 10107102 指定的进程权限校验失败
846
847**错误信息**
848
849Permission verification failed for the specified process.
850
851**错误描述**
852
853当指定的进程权限校验失败时,方法将返回该错误码。
854
855**可能原因**
856
857指定的进程权限校验失败。
858
859**处理步骤**
860
861确认指定进程的权限是否正确。
862
863### 10108101 拉起Ability时内部错误
864
865**错误信息**
866
867An internal error occurs while attempting to launch the ability.
868
869**错误描述**
870
871当内存申请、多线程处理异常等内部处理错误时,方法将返回该错误码。
872
873**可能原因**
874
875内存申请、多线程处理等内核通用错误。具体原因可能包括:内部对象为空、处理超时、包管理获取应用信息失败、系统服务获取失败、启动的Ability实例已达到上限等原因。
876
877**处理步骤**
878
879内部错误是系统运行过程中出现的内部错误,开发者无法处理。
880
881### 10103201 目标Ability不是ServiceAbility类型
882
883**错误信息**
884
885The target ability is not of the ServiceAbility type.
886
887**错误描述**
888
889操作的目标Ability不是ServiceAbility类型。
890
891**可能原因**
892
893aa stop命令停止ServiceAbility时,-a的参数abilityName对应的Ability不是Service类型。
894
895**处理步骤**
896
897检查aa -a的参数abilityName对应的Abiility是否为ServiceAbility类型。
898
899### 10104002 获取指定包信息失败
900
901**错误信息**
902
903Failed to retrieve specified package information.
904
905**错误描述**
906
907获取指定包信息失败。
908
909**可能原因**
910
911指定的包名对应的应用没有安装。
912
913**处理步骤**
914
9151. 检查指定的包名是否正确。
9162. 检查指定的bundleName对应的应用是否安装。可使用如下命令查询已安装的应用列表,若该bundleName不在查询结果中,说明应用未安装成功。
917    ```
918    hdc shell bm dump -a
919    ```
920
921### 10106401 杀死进程失败
922
923**错误信息**
924
925Failed to terminate the process.
926
927**错误描述**
928
929杀死进程失败。
930
931**可能原因**
932
9331. aa force-stop命令指定的应用不存在。
9342. 未成功连接到AppManagerService。
935
936**处理步骤**
937
9381. 检查指定的bundleName对应的应用是否安装。可使用如下命令查询已安装的应用列表,若该bundleName不在查询结果中,说明应用未安装成功。
939
940    ```
941    hdc shell bm dump -a
942    ```
9432. 尝试重启设备。
944
945### 10106402 常驻进程无法被杀死
946
947**错误信息**
948
949Persistent processes cannot be terminated.
950
951**错误描述**
952
953常驻进程无法被杀死。
954
955**可能原因**
956
957aa force-stop命令指定的bundleName是常驻进程。
958
959**处理步骤**
960
961检查目标应用是否为常驻进程,常驻进程无法通过命令杀死。
962
963### 10108501 aa test命令内部错误
964
965**错误信息**
966
967An internal error occurs during the execution of the aa test command.
968
969**错误描述**
970
971当内存申请、多线程处理异常等内部处理错误时,方法将返回该错误码。
972
973**可能原因**
974
975内存申请、多线程处理等内核通用错误。具体原因可能包括:内部对象为空、处理超时、系统服务获取失败等原因。
976
977**处理步骤**
978
979内部错误是系统运行过程中出现的内部错误,开发者无法处理。
980
981### 10108601 进入/退出调试模式时内部错误
982
983**错误信息**
984
985An internal error occurs while attempting to enter/exit debug mode.
986
987**错误描述**
988
989当内存申请、多线程处理异常等内部处理错误时,方法将返回该错误码。
990
991**可能原因**
992
993内存申请、多线程处理等内核通用错误。具体原因可能包括:内部对象为空、处理超时、系统服务获取失败等原因。
994
995**处理步骤**
996
997内部错误是系统运行过程中出现的内部错误,开发者无法处理。
998
999### 10103601 指定的包名不存在
1000
1001**错误信息**
1002
1003The specified bundleName does not exist.
1004
1005**错误描述**
1006
1007用户指定的包名未找到时返回该错误码。
1008
1009**可能原因**
1010
1011aa attach/detach命令指定的包名不存在。
1012
1013**处理步骤**
1014
1015检查指定的bundleName对应的应用是否安装。可使用如下命令查询已安装的应用列表,若该bundleName不在查询结果中,说明应用未安装成功。
1016
1017  ```
1018  hdc shell bm dump -a
1019  ```
1020
1021### 10106701 目标应用不是Debug应用
1022
1023**错误信息**
1024
1025Cannot debug applications using a release certificate.
1026
1027**错误描述**
1028
1029目标应用不是Debug应用。
1030
1031**可能原因**
1032
1033当前使用签名工具中“type”参数不为“debug”。
1034
1035**处理步骤**
1036
1037使用Debug签名证书重新签名,安装新签名出的HAP后,再尝试执行该该命令。
1038签名工具及签名证书的生成方式可以参考:[签名工具指导](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/ide-signing)