2013-05-31 39 views
1

我有一個具有應用內結算的ndroid應用程序。我想要一個訂閱。我看到一個谷歌示例。我在我的應用程序中引入了結算我購買一件物品。但我有問題。我點擊一個按鈕'購買'開始意圖...。關閉此意圖後(文本:你擁有這個項目,我點擊確定),如果我想再次點擊此按鈕應用程序被粉碎。Android結算 - 您自己擁有此項的錯誤

日誌

我已購買此產品。

05-31 19:02:10.416: D/Finsky(3313): [1]CarrierParamsAction.createCarrierBillingParameters: Carrier billing config is null. Device is not targeted for DCB 2. 
05-31 19:02:10.436: I/SurfaceFlinger(1705): id=170(12) createSurface 0x3d364 (1x1),1 flag=0 
05-31 19:02:10.441: E/Finsky(3313): [237] FileBasedKeyValueStore.delete: Attempt to delete 'paramspt_jJJW_8KK4rjjCyMt7_w' failed! 
05-31 19:02:10.456: D/dalvikvm(3313): GC_CONCURRENT freed 1269K, 11% free 15726K/17607K, paused 13ms+7ms 
05-31 19:02:10.471: I/ClipboardServiceEx(1865): mCBPickerDialog enter case. MSG_DISMISS_DIALOG 
05-31 19:02:10.471: D/CLIPBOARD(14751): Hide Clipboard dialog at Starting input: finished by someone else... ! 
05-31 19:02:10.476: I/ClipboardServiceEx(1865): mCBPickerDialog enter case. MSG_DISMISS_DIALOG 
05-31 19:02:10.491: I/ActivityManager(1865): Displayed shortComponentName: +165ms 
05-31 19:02:10.726: I/power(1865): *** release_dvfs_lock : lockType : 1 
05-31 19:02:10.726: D/PowerManagerService(1865): releaseDVFSLockLocked : all DVFS_MIN_LIMIT are released 
05-31 19:02:10.726: W/ActivityManager(1865): mDVFSLock.release() 

在第二點擊我有

05-31 19:08:43.331: W/System.err(15461): java.lang.IllegalStateException: Can't start async operation (launchPurchaseFlow) because another async operation(launchPurchaseFlow) is in progress. 
05-31 19:08:43.331: W/System.err(15461): at com.market.IabHelper.flagStartAsync(IabHelper.java:725) 
05-31 19:08:43.331: W/System.err(15461): at com.market.IabHelper.launchPurchaseFlow(IabHelper.java:289) 
05-31 19:08:43.331: W/System.err(15461): at com.crystalreality.crystaltv.BillingActivity.performPurchaseSubscription(BillingActivity.java:65) 
05-31 19:08:43.331: W/System.err(15461): at dalvik.system.NativeStart.run(Native Method) 

我有一個activityResult,但它的代碼不執行

@Override 
    protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
     Log.d(TAG, "onActivityResult(" + requestCode + "," + resultCode + "," + data); 
     if(requestCode == 0) { 
      finish(); 
     } 

     // Pass on the activity result to the helper for handling 
     if (!mHelper.handleActivityResult(requestCode, resultCode, data)) { 
      // not handled, so handle it ourselves (here's where you'd 
      // perform any handling of activity results not related to in-app 
      // billing... 
      super.onActivityResult(requestCode, resultCode, data); 
     } 
     else { 
      Log.d(TAG, "onActivityResult handled by IABUtil."); 
     } 
    } 

purchaseFlow是從樣本代碼。 我該如何修復它?

回答

6

這是應用內結算IabHelper類中的錯誤(也就是我的錯:-))。請從下載更新的樣品(有bug修復):

http://code.google.com/p/marketbilling/

在SDK管理器的版本是目前過時的一點點,不包含最新的錯誤修正。

+0

我下載示例。有用。布魯諾,如果我有2個活動(本地(C++)和平常(java與iabhelper)),我可以從本地活動調用purhaseflow。在c + +我調用通常的活動方法(使用jni),這種方法調用purchaseflow ..在我的應用程序錯誤是堅持 –

+0

我會吻你,如果我可以,@布魯諾!過去兩天一直在撓頭,試圖弄清爲什麼我購買的訂閱沒有被列出;更新爲您鏈接的新代碼,現在它效果很好。非常感謝! –

相關問題