1

アプリ課金v3でAndroidを実装しようとしていますが、次のエラーでアプリケーションがクラッシュします 別の非同期操作(消費)が進行中のため、非同期操作(消費)を開始できません

スタックトレースを以下に示します

02-25 16:56:54.811: E/AndroidRuntime(6913): FATAL EXCEPTION: main
02-25 16:56:54.811: E/AndroidRuntime(6913): java.lang.IllegalStateException: Can't start async operation (consume) because another async operation(consume) is in progress.
02-25 16:56:54.811: E/AndroidRuntime(6913):     at com.seven.BillingHelper.IabHelper.flagStartAsync(IabHelper.java:711)
02-25 16:56:54.811: E/AndroidRuntime(6913):     at com.seven.BillingHelper.IabHelper.consumeAsyncInternal(IabHelper.java:832)
02-25 16:56:54.811: E/AndroidRuntime(6913):     at com.seven.BillingHelper.IabHelper.consumeAsync(IabHelper.java:623)
02-25 16:56:54.811: E/AndroidRuntime(6913):     at com.seven.javalib.InAppBilling$15.run(InAppBilling.java:350)
02-25 16:56:54.811: E/AndroidRuntime(6913):     at android.os.Handler.handleCallback(Handler.java:587)
02-25 16:56:54.811: E/AndroidRuntime(6913):     at android.os.Handler.dispatchMessage(Handler.java:92)
02-25 16:56:54.811: E/AndroidRuntime(6913):     at android.os.Looper.loop(Looper.java:143)
02-25 16:56:54.811: E/AndroidRuntime(6913):     at android.app.ActivityThread.main(ActivityThread.java:4196)
02-25 16:56:54.811: E/AndroidRuntime(6913):     at java.lang.reflect.Method.invokeNative(Native Method)
02-25 16:56:54.811: E/AndroidRuntime(6913):     at java.lang.reflect.Method.invoke(Method.java:507)
02-25 16:56:54.811: E/AndroidRuntime(6913):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
02-25 16:56:54.811: E/AndroidRuntime(6913):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
02-25 16:56:54.811: E/AndroidRuntime(6913):     at dalvik.system.NativeStart.main(Native Method)

誰かが私がこれを解決する方法を教えてもらえますか

4

3 に答える 3

4

以前の試行でメソッドflagEndAsyncが呼び出されていないという理由でIabHelper、すべての場合(成功または失敗)でメソッドflagEndAsyncが呼び出されていることを確認してください。

于 2013-02-25T11:43:18.957 に答える
2

これは、アクティビティのメソッドでIabHelper.handleActivityResult(requestCode, resultCode, data);呼び出されないために発生する可能性があります。onActivityResult()呼び出されていることを確認することをお勧めします。

于 2015-03-31T14:02:27.193 に答える
1

すべてのコードを更新する代わりに。IabHelperのflagEndSyncメソッドを公開する方が簡単です。

次に、IabHelperを呼び出すたびに、最初にMhelper.flagEndAsync()を呼び出します。そうすれば、クリーンな非同期タスクから始めることが確実にわかります。

もうクラッシュはありません。

于 2013-08-18T08:35:42.867 に答える