关于android:接入华为游戏防沉迷点击防沉迷弹窗后游戏闪退

7次阅读

共计 924 个字符,预计需要花费 3 分钟才能阅读完成。

问题形容

咱们游戏接入华为游戏服务 sdk 6.1.0.301 版本后,应用华为帐号(实名信息为未成年人)测试,登录后呈现 SDK 的防沉迷提醒弹框,点击“晓得了”,游戏闪退,报错如下:

java.lang.NullPointerException
  Attempt to invoke virtual method 'android.content.res.Resources android.content.Context.getResources()' on a null object reference
  com.huawei.hms.utils.ResourceLoaderUtil.getStringId(ResourceLoaderUtil.java:1)
  com.huawei.hms.jos.games.player.AntiAddictionService$c.run(Unknown Source:33)
  android.os.Handler.handleCallback(Handler.java:900)
  android.os.Handler.dispatchMessage(Handler.java:103)
  android.os.Looper.loop(Looper.java:219)
  android.app.ActivityThread.main(ActivityThread.java:8668)
  java.lang.reflect.Method.invoke(Native Method)

问题剖析

看报错类是华为 sdk 外部类谬误,不分明报错起因,分割华为技术反对申请帮忙看下问题(可提单分割),技术回复是上下文 Context 为 null,应该是没有设置上下文,初始化接口调用之前须要设置上下文 Context,代码在文档和 demo 中都有示例,让我认真查看代码,附参考文档:

ResourceLoaderUtil.setmContext(this);

问题解决

依照技术回复增加代码后问题解决。咱们是间接从游戏 sdk 旧版本升级到新版原本的,只批改了 init 接口调用,没有依照官网文档从头接入才呈现的问题,当前接入 sdk 肯定要从头查看。

正文完
 0