46

アプリ内課金のアプリをリリースしました。これまでのところ、クラッシュはグーグルプレイに報告されていません(これはユーザーがクラッシュを報告するのに苦労したときにのみ発生します)が、私は急いでクラッシュしたといういくつかの報告があります(これは自動です)。クラッシュレポートは次のとおりです。

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%未満でのみ発生します。

私が間違っている場合は訂正してください。ただし、クラッシュの行番号が急増レポートに記載されていないようです:-(

このクラッシュレポートが何を意味するのか、ましてや修正方法もわかりません。何か案は?

4

1 に答える 1

117

これはIabHelper.javaのバグだと思います。

IabHelper disposeメソッドでは、次の行、

            if (mContext != null) mContext.unbindService(mServiceConn);

これに変更する必要があります。

            if (mContext != null && mService != null) mContext.unbindService(mServiceConn);

mServiceは、サービスが登録された後にのみ設定されるため、!= nullをチェックすると、サービスのバインドを解除する前に、サービスが実際に登録されていることが保証されます。

于 2013-05-11T09:40:13.943 に答える