ShortcutManager 在即时应用程序中崩溃
ShortcutManager crash in instant apps
当我 运行 我的即时应用程序由于快捷方式功能而崩溃时,请查看带有堆栈跟踪的图像,这是我唯一可以提供的东西,因为我无法提供附加调试器,另一个问题:(
**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 时注释所有与快捷方式相关的代码更好的解决方案?
I understand that a shortcut does not make any sense in an Instant App, is there a better solution than having all the code related to
shortcuts commented when creating an IA?
所以,是的,出于安全目的,Instant Apps 受到 运行 某些 API 的限制。曾经有一个 FAQ 页面指出这一点,但我找不到了。
但无论如何,您不必将其注释掉。您可以使用:
当我 运行 我的即时应用程序由于快捷方式功能而崩溃时,请查看带有堆栈跟踪的图像,这是我唯一可以提供的东西,因为我无法提供附加调试器,另一个问题:(
**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 时注释所有与快捷方式相关的代码更好的解决方案?
I understand that a shortcut does not make any sense in an Instant App, is there a better solution than having all the code related to shortcuts commented when creating an IA?
所以,是的,出于安全目的,Instant Apps 受到 运行 某些 API 的限制。曾经有一个 FAQ 页面指出这一点,但我找不到了。
但无论如何,您不必将其注释掉。您可以使用: