我的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 }
有人可以解释为什么我收到此错误以及如何解决此问题?
编辑:
任何人都可以告诉我们使用操作来启动“测试活动”#。
答案 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
(根据需要替换包名称和活动名称)
答案 3 :(得分:0)
要扩展陈薛星的内容,请在"Android developer guide on Intent Filters"中的“类别测试”下声明
注意:Android自动将CATEGORY_DEFAULT类别应用于传递给startActivity()和startActivityForResult()的所有隐式意图。如果您希望活动接收隐式意图,则它的意图过滤器中必须包含“ android.intent.category.DEFAULT”的类别,如上例所示。
因此您需要添加
<category android:name="android.intent.category.DEFAULT"/>
进入您的意图过滤器。
这将与隐式意图匹配。 (其他几个答案显示了如何显式地定位类)。