从命令行打开特定 Activity

open specific Activity from command line

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

activity 清单

<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>

我的包裹是:包裹="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

但我无法启动 activity,

我做错了什么?

您缺少子包和启动器意图。改成

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

因此,经过数小时的未知探索,我找到了解决方案。 在我的应用程序中,我使用一些 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

感谢帮手