2014-06-24 72 views
0

我在應用程序結算中遇到了一些問題,我想在可以多次購買的應用程序內創建產品。但谷歌在應用程序結算方面的做法是,在購買產品之前必須首先使用產品。我試着用下面的代碼耗吧:在應用程序帳單中消費

 if (resultCode == RESULT_OK) { 
      try { 

       JSONObject jo = new JSONObject(purchaseData1); 
       String sku = jo.getString(inappid); 
       Toast.makeText(
         ABActivity.this, 
         "Purchase Successful", 
         Toast.LENGTH_LONG).show(); 

       Bundle ownedItems = mservice.getPurchases(3, getPackageName(), "inapp", null); 
       // Check response 
       int responseCode = ownedItems.getInt("RESPONSE_CODE"); 
       if (responseCode != 0) { 
        throw new Exception("Error"); 
       } 
       // Get the list of purchased items 
       ArrayList<String> purchaseDataList = 
        ownedItems.getStringArrayList("INAPP_PURCHASE_DATA_LIST"); 
       for (String purchaseData : purchaseDataList) { 
        JSONObject o = new JSONObject(purchaseData); 
        String purchaseToken = o.optString("token", o.optString("purchaseToken")); 
        // Consume purchaseToken, handling any errors 
        mservice.consumePurchase(3, getPackageName(), purchaseToken); 

        } 

      } catch (JSONException e) { 
       System.out.println("Failed to parse purchase data."); 
       e.printStackTrace(); 
      } catch (RemoteException e) { 
       System.out.println("Failed to parse purchase data."); 
       e.printStackTrace(); 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } catch (Exception e) {System.out.println("Failed to parse purchase data."); 
      e.printStackTrace(); 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 

我第一次嘗試購買它完美的項目,但是當我再次嘗試購買應用程序崩潰。當我嘗試在虛擬設備上使用該應用程序並使用logcat記錄錯誤時,它首次嘗試購買該項目時崩潰,並且它在第一次在我的手機上出現NullPointerException時效果很好,所以我沒有認爲NullPointerException是問題。

在此先感謝。

回答

0

我的消費項目有同樣的問題。

您無法在虛擬設備上測試應用內結算。這就是你得到一個NullPointerException的原因。

相關問題