2

我正在尝试从命令行启动特定的活动。我正在为 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

但我不能开始那个活动,

我究竟做错了什么?

4

2 回答 2

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

感谢帮手

于 2017-12-14T15:08:46.183 回答
0

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

adb shell start -n com.my.app/.activities.ChatActivity
于 2017-12-14T12:26:22.643 回答