アプリ内課金のアプリをリリースしました。これまでのところ、クラッシュはgoogle playに報告されていません(これは、ユーザーがクラッシュを報告するのに苦労した場合にのみ発生します)が、急いでクラッシュしたという報告がいくつかあります(自動)。クラッシュレポートは次のとおりです。
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)
これは、アプリの実行の1%未満でのみ発生します。
私が間違っている場合は訂正してください。ただし、クラッシュの行番号が急増レポートに記載されていないようです:-(
このクラッシュレポートが何を意味するのか、ましてや修正方法もわかりません。何か案は?
これはIabHelper.Javaのバグだと思います。
IabHelper disposeメソッドでは、次の行、
if (mContext != null) mContext.unbindService(mServiceConn);
これに変更する必要があります。
if (mContext != null && mService != null) mContext.unbindService(mServiceConn);
mServiceは、サービスが登録された後にのみ設定されるため、!= nullをチェックすると、バインドを解除する前に、サービスが実際に登録されていることが保証されます。