[main] java.lang.NullPointerException at
com.Google.androID.gms.common.ConnectionResult.startResolutionForResult(UnkNown
Source) at
com.Google.example.games.basegameutils.GameHelper.resolveConnectionResult(GameHelper.java:752)
at
com.Google.example.games.basegameutils.GameHelper.onConnectionFailed(GameHelper.java:729)
我认为可能发生的唯一原因是在GameHelper.java:752中mActivity == null:
mConnectionResult.startResolutionForResult(mActivity,RC_RESolVE);
onStop上的mActivity为null()
是否有可能GameHelper.java有BUG并且如果在调用onStop()之后发生onConnectionFailed(),可能会崩溃?
谢谢.
编辑:
它发生在更新到最新的Play API(rev 15)和更新的GameHelper.java之后.
现在已在最新的GameHelper版本中修复:
https://github.com/playgameservices/android-samples/commit/e7b3758c136b5b434f1dfd9ca8c03f75aad70f09
老答案:
对我而言,它发生在应用程序的开头,当Google Play服务要求我登录时,如果我单击取消,则会发生同样的错误.
因此,当从您自己的活动离开以登录活动时,它会调度onStop事件,并且由于用户启动的进程(可解析)而无法连接,因此会发生错误.
所以我的快速黑客正在改变:
catch (SendIntentException e)
简单地说
catch (Exception e)
所以它也会捕获Null指针异常
当然,在这种情况下,注册过程可能不会继续,所以我启动了另一个动作的重新登录,它似乎现在正常工作.
更彻底的黑客可能试图在活动开始时解决结果,因为我们定义了未决的解决方案变量:
// Are we expecting the result of a resolution flow?boolean mExpectingResolution = false;boolean mPendingResolution = false;
然后在错误行上检查activity是否为null
if(mActivity != null) mConnectionResult.startResolutionForResult(mActivity,RC_RESolVE);else mPendingResolution = true;
一开始我们检查并尝试解决它:
if(mPendingResolution && mConnectionResult != null)try { mConnectionResult.startResolutionForResult(mActivity,RC_RESolVE);} catch (SendIntentException e) { e.printstacktrace();}
这应该有助于lib支持者的官方解决方案:)
总结以上是内存溢出为你收集整理的android – GameHelper在onConnectionFailed()崩溃全部内容,希望文章能够帮你解决android – GameHelper在onConnectionFailed()崩溃所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)