即时应用程序中的ShortcutManager崩溃

问题描述 投票:0回答:1

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

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时注释与快捷方式相关的所有代码更好的解决方案?

android kotlin android-instant-apps android-shortcut
1个回答
0
投票

我知道快捷键在Instant App中没有任何意义,有没有比将所有代码都与创建IA时评论的快捷方式?

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

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

/instantapps/PackageManagerCompat.html#isInstantApp()

© www.soinside.com 2019 - 2024. All rights reserved.