Потреблять в приложении биллинга
У меня есть некоторые проблемы с биллингом приложений, я хотел создать внутри приложения продукт, который можно купить несколько раз. Но Google сделал оплату в приложении таким образом, что продукт должен быть потреблен прежде, чем вы сможете купить его снова. Я попытался использовать его с помощью следующего кода:
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 является проблемой.
Заранее спасибо.
1 ответ
У меня та же проблема с потреблением предмета.
Вы не можете проверить биллинг в приложении на виртуальном устройстве. Это причина, почему вы получаете исключение NullPointerException.