Android快捷方式 - 即使targetPackage和targetClass正确,也未安装应用程序错误

Dan*_*ele 3 android android-appshortcut

我在主屏幕中按住图标时尝试实现Android快捷方式.但是当我尝试启动它们时,我得到了一个

"App未安装"Toast

这是我的shortcuts.xml:

<shortcuts xmlns:android="http://schemas.android.com/apk/res/android">

    <shortcut
        android:icon="@drawable/plus_black"
        android:shortcutId="add_sub"
        android:shortcutLongLabel="@string/shortcut_add_sub_long"
        android:shortcutShortLabel="@string/shortcut_add_sub">

        <intent
            android:action="android.intent.action.VIEW"
            android:targetClass="com.dancam.subscriptions.AddSubscription.AddSubscription"
            android:targetPackage="com.dancam.subscriptions.AddSubscription" />
    </shortcut>

    <shortcut
        android:icon="@drawable/pen"
        android:shortcutId="create_sub"
        android:shortcutLongLabel="@string/shortcut_create_sub_long"
        android:shortcutShortLabel="@string/shortcut_create_sub">

        <intent
            android:action="android.intent.action.VIEW"
            android:targetClass="com.dancam.subscriptions.CreateSubscription.CreateSubscription"
            android:targetPackage="com.dancam.subscriptions.CreateSubscription" />
    </shortcut>
</shortcuts>
Run Code Online (Sandbox Code Playgroud)

我已经看过这个问题,但我找不到合适的解决方案.

这是我的包/类树的样子:

文件树

关于如何解决这个问题的任何线索?

Com*_*are 9

将两个android:targetPackage属性值替换为您的applicationId.

这里,"包"指的是applicationId(又名包名),而不是类的Java包.

  • 如果有多种口味怎么处理?`${applicationId}` 似乎不起作用。 (2认同)
  • @SrikarReddy:啊,我明白了。$ {applicationId}是清单功能,不用于资源。因此,在您的`debug /`和`release /`源集中有不同版本的快捷方式XML。 (2认同)