从命令行打开特定的活动

时间:2017-12-14 12:17:58

标签: android shell android-intent android-manifest explicit-intent

我正在尝试从命令行启动特定的Activity。 我正在为Android O(api 26)构建应用程序,我尝试显式启动该活动来模拟深层链接

活动清单

<activity
        android:name=".activities.ChatActivity"
        android:label="@string/chat_action_bar_title"
        android:launchMode="singleTask"
        android:screenOrientation="portrait">
        <intent-filter>
            <action android:name="android.intent.action.VIEW"/>
            <category android:name="android.intent.category.BROWSABLE"/>
            <category android:name="android.intent.category.DEFAULT"/>
        </intent-filter>
    </activity>

我的包裹是:package =“com.my.app”

我正在使用此命令:

adb shell am start  -n com.my.app.activities/.ChatActivity

我收到此错误:

    Starting: Intent { cmp=com.my.app.activities/.ChatActivity }
Error type 3
Error: Activity class {com.my.app.activities/com.my.app.activities.ChatActivity} does not exist.

我尝试添加

 -a android.intent.action.VIEW

-c android.intent.category.DEFAULT

但我无法开始这项活动,

我做错了什么?

2 个答案:

答案 0 :(得分:4)

因此,在寻找未知的数小时后,我找到了解决方案。 在我的应用程序中,我使用一些BuildVariants来区分工作阶段。

所以不要使用命令

adb shell am start  -n com.my.app.activities/.ChatActivity

我应该使用

adb shell am start -n com.my.app.MY_BUILD_VARIANT/com.my.app.activities.ChatActivity

感谢帮助者

答案 1 :(得分:0)

您缺少子包和启动器意图。将其更改为

adb shell start -n com.my.app/.activities.ChatActivity