无法从adb启动活动

时间:2014-03-31 17:05:35

标签: android

我的AndroidManifest.xml中有以下内容(我刚刚向默认项目添加了第二个活动):

<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
    android:name="com.example.com.testapp.MainActivity"
    android:label="@string/app_name" >
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />

        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>

</activity>
<activity
    android:name="com.example.com.testapp.TestActivity"
    android:label="@string/title_activity_test" >
    <intent-filter>
        <action android:name="com.testapp.action.TEST_ACTION" />
    </intent-filter>
</activity>

我想使用adb命令启动TestActivity。我试过了:

./adb shell am start -a com.testapp.action.TEST_ACTION

但它给出了错误:

 Error: Activity not started, unable to resolve Intent { act=com.testapp.action.TEST_ACTION flg=0x10000000 }

有人可以解释为什么我收到此错误以及如何解决此问题?

编辑:

任何人都可以告诉我们使用操作来启动“测试活动”#。

4 个答案:

答案 0 :(得分:3)

我认为您应该将以下代码添加到您的intentfilter

<category android:name="android.intent.category.DEFAULT"/>

答案 1 :(得分:2)

尝试使用: adb shell "am start -n com.example.com.testapp/.TestActivity -a com.testapp.action.TEST_ACTION"

adb shell "am start com.example.com.testapp -a com.testapp.action.TEST_ACTION"

希望有效。

答案 2 :(得分:0)

尝试adb shell am start -n com.mypackage.name/com.mypackage.name.TEST_ACTION(根据需要替换包名称和活动名称)

看看this solution

答案 3 :(得分:0)

要扩展陈薛星的内容,请在"Android developer guide on Intent Filters"中的“类别测试”下声明

  

注意:Android自动将CATEGORY_DEFAULT类别应用于传递给startActivity()和startActivityForResult()的所有隐式意图。如果您希望活动接收隐式意图,则它的意图过滤器中必须包含“ android.intent.category.DEFAULT”的类别,如上例所示。

因此您需要添加 <category android:name="android.intent.category.DEFAULT"/>进入您的意图过滤器。

这将与隐式意图匹配。 (其他几个答案显示了如何显式地定位类)。