IllegalStateException в IAB V3

Я пытаюсь включить Android в биллинг приложения v3, и мое приложение вылетает со следующей ошибкой. Не удается запустить асинхронную операцию (использовать), поскольку выполняется другая асинхронная операция (использовать)

Трассировка стека приведена ниже

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)

Может кто-нибудь, пожалуйста, скажите мне, как я могу решить это

3 ответа

Решение

По причине в предыдущем попробуйте метод flagEndAsync не был вызван, убедитесь, что в IabHelper во всех случаях (успех или неудача) метод flagEndAsync называется.

Это может произойти, потому что IabHelper.handleActivityResult(requestCode, resultCode, data); не называется в onActivityResult() метод вашей деятельности. Вы можете убедиться, что он вызывается.

Вместо обновления всего кода. Проще сделать метод flagEndSync в вашем публичном IabHelper.

Затем каждый раз, когда вы звоните своему IabHelper, сначала вызывайте Mhelper.flagEndAsync(). Тогда вы точно знаете, что начинаете с чистой Asynctask.

Никаких сбоев для меня больше.

Другие вопросы по тегам