用adb shell am命令时候输入了adb shell am start -n JDRU.apk以后为啥提示Error:bad component name

如题所述

bad component name,提示你参数不正确。想必你也看到这句话之前的一堆内容了,那些都是介绍shell am命令的,这里只讲重点。

$ adb shell am start
usage: am [subcommand] [options]
usage: am start [-D] [-W] [-P <FILE>] [--start-profiler <FILE>]
               [--sampling INTERVAL] [-R COUNT] [-S] [--opengl-trace]
               [--user <USER_ID> | current] <INTENT>

那么咱们启动app使用的intenet,至于什么是intent,自己去了解下。再来看看intent的说明

<INTENT> specifications include these flags and arguments:
    [-a <ACTION>] [-d <DATA_URI>] [-t <MIME_TYPE>]
    [-c <CATEGORY> [-c <CATEGORY>] ...]
    [-e|--es <EXTRA_KEY> <EXTRA_STRING_VALUE> ...]
    [--el <EXTRA_KEY> <EXTRA_LONG_VALUE> ...]
    [-n <COMPONENT>] [-p <PACKAGE>] [-f <FLAGS>]
    ........
    (省略N多行)

只看重点 -n 这行,那么按照说明,启动一个app应该是这样的构造,当然后面可以加参数什么的

am start -n {包(package)名}/{包名}.{活动(activity)名称}

包名以及启动的入口都可以从aapt中得到信息,分别为

package: name和launchable-activity

一个网上最简单的例子:

am start -n com.android.calculator2/com.android.calculator2.Calculator

自己多试试就会成功,找对包名类名和入口,没问题的

温馨提示:答案为网友推荐,仅供参考
相似回答