应用内结算(v3) - IllegalArgumentException:服务未注册:

Mic*_*ick 46 android in-app-purchase

我刚刚发布了一个应用内付款的应用.到目前为止,没有报告谷歌播放崩溃(这只发生在用户麻烦报告崩溃时)但我确实有一些崩溃报告(这是自动的).崩溃报告如下:

class java.lang.RuntimeException
Msg: android.app.ActivityThread.performDestroyActivity:3655 (Unable to destroy activity {com.mycompany.mygame/com.mycompany.mygame.Splashscreen}: java.lang.IllegalArgumentException: Service not registered: com.mycompany.mygame.util.IabHelper$1@46369b38)
Run Code Online (Sandbox Code Playgroud)

这只发生在我的应用程序的执行次数的<1%.

如果我错了,请纠正我,但似乎在乱舞报告中没有给出崩溃的行号:-(

我甚至不确定崩溃报告的含义,更不用说如何修复它了.有任何想法吗?

the*_*hin 117

我相信这是IabHelper.java中的一个错误.

在IabHelper配置方法中,以下行,

            if (mContext != null) mContext.unbindService(mServiceConn);
Run Code Online (Sandbox Code Playgroud)

应该改为这个.

            if (mContext != null && mService != null) mContext.unbindService(mServiceConn);
Run Code Online (Sandbox Code Playgroud)

mService仅在Service注册后设置,因此在我们尝试解除绑定之前,检查它是否为@ = null将保证服务确实已注册.

  • 整个IabHelper都是极端错误的.应该重新实现. (19认同)
  • @tmanthey:我们可以看一些替代的非错误代码吗? (4认同)