即时应用程序中的ShortcutManager崩溃

时间:2020-01-07 18:19:33

标签: android kotlin android-instant-apps android-shortcut

运行即时应用程序时,由于快捷键功能而导致崩溃,请查看带有堆栈跟踪的图像,这是我唯一能提供的内容,因为我无法附加调试器,而另外一个问题:(

stacktrace

**GroupApplication.class**
override fun onCreate() {
    ...
    ShortcutsHelper.init(this)
    ShortcutsHelper.addSearchShortcut()
}
object ShortcutsHelper {
    lateinit var appContext: Context
    lateinit var shortcutManager: ShortcutManager

    fun init(context: Context) {
        this.appContext = context.applicationContext
        this.shortcutManager = context.getSystemService(ShortcutManager::class.java)
    }

    fun addSearchShortcut() {
        val shortcut = ShortcutInfo.Builder(appContext, SEARCH_SHORTCUT_ID)
                .setShortLabel(appContext.getString(R.string.search_shortcut_short_label))
                .setLongLabel(appContext.getString(R.string.search_shortcut_long_label))
                .setIcon(Icon.createWithResource(appContext, R.drawable.ic_search_black))
                .setIntent(GroupHomeActivity.getStartIntent(appContext, NavigationScreen.SEARCH))
                .build()

        shortcutManager.addDynamicShortcuts(listOf(shortcut))
    }

我了解快捷方式在Instant App中没有任何意义,是否有比在创建IA时注释与快捷方式相关的所有代码更好的解决方案?

1 个答案:

答案 0 :(得分:0)

我了解快捷键在Instant App中没有任何意义,是否有比将所有代码都关联到更好的解决方案? 创建IA时评论的快捷方式?

所以是的,出于安全目的,Instant Apps被限制运行某些API。曾经有一个FAQ页面对此进行了指示,但是我找不到了。

但是无论如何,您不必注释掉它。您可以使用:

/instantapps/PackageManagerCompat.html#isInstantApp()