2014-06-24 2 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이 발생합니다.