升级Play Game Services至20.1.0后Instant App出现ShortcutManager空指针崩溃
解决Play Game Services v20.1.0在Instant App中触发的ShortcutManager空指针崩溃
问题原因
这是Google Play Game Services v20.x版本的内部bug:库在应用启动初期会自动尝试访问ShortcutManager获取动态快捷方式,但Instant App环境下系统会返回null的ShortcutManager实例,而库未对该null情况做判空处理,直接调用方法导致空指针崩溃。崩溃完全来自库内部逻辑,和你的业务代码无关。
解决方案
方案1:回滚到稳定版本
直接降级到之前无问题的19.0.0版本,这是最稳妥的临时解决办法:
implementation("com.google.android.gms:play-services-games-v2:19.0.0")
方案2:禁用Play Game Services的应用快捷功能
如果不想降级,可通过配置关闭库内部的应用快捷相关逻辑:
- 代码配置方式:初始化GamesClient时,通过
GamesOptions关闭快捷功能:
val gamesOptions = GamesOptions.Builder() .setDisableAppShortcuts(true) .build() val gamesClient = Games.getGamesClient( context, GoogleSignIn.getLastSignedInAccount(context), gamesOptions )
- Manifest配置方式:在AndroidManifest.xml中添加meta-data禁用:
<meta-data android:name="com.google.android.gms.games.disable_app_shortcuts" android:value="true" />
方案3:等待官方修复
该问题属于Google库的原生bug,你可以在Google Issue Tracker提交反馈,等待官方在后续版本中补充null判空逻辑。
内容的提问来源于stack exchange,提问作者Ильин Павел
相关产品推荐
相关产品推荐

