2013-02-25 77 views
1

我想impliment在app計費V3 Android和與下面的錯誤,因爲另一個異步操作(消費)正在進行無法啓動異步操作(消費)我的應用程序崩潰IllegalStateException異常在IAB 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) 

誰能告訴我怎樣才能解決這個

回答

4

的一個原因在以前的嘗試方法flagEndAsync hasnot被調用,使蘇堆棧跟蹤給定在所有情況下(成功或失敗),在IabHelper中調用方法flagEndAsync

+0

我會試試 – glo 2013-02-25 11:52:27

+0

非常感謝你的工作:) :) – glo 2013-02-25 12:01:41

1

而不是更新所有代碼。在你的IabHelper公開中製作flagEndSync方法更容易。

然後每次你打電話給你的IabHelper時,首先調用Mhelper.flagEndAsync()。那麼你肯定知道你從一個乾淨的Asynctask開始。

不再爲我崩潰。

+4

如果真的有異步操作正在進行怎麼辦?如果你在每個'flagStartAsync()'之前調用'flagEndAsync()',那麼沒有必要使用'mAsyncInProgress'標誌。 – Halil 2014-10-19 18:04:22

2

發生這種情況的原因可能是IabHelper.handleActivityResult(requestCode, resultCode, data);未在您的活動的onActivityResult()方法中調用。您可能想驗證它是否被調用。

相關問題