我正在製作一個項目,我需要製作消耗品。如何製作Android產品消耗品
點擊購買按鈕,使用下面的代碼進行消費。
inventory=new Inventory();
mHelper.consumeAsync(inventory.getPurchase(SKU_SUCCESS),mConsumeFinishedListener1);
但是它在'IabHelper類中獲取'Null指針異常。
void consume(Purchase itemInfo) throws IabException {
checkSetupDone("consume");
if (!itemInfo.mItemType.equals(ITEM_TYPE_INAPP)) {
throw new IabException(IABHELPER_INVALID_CONSUMPTION,
"Items of type '" + itemInfo.mItemType
+ "' can't be consumed.");
}
try {
String token = itemInfo.getToken();
String sku = itemInfo.getSku();
if (token == null || token.equals("")) {
logError("Can't consume " + sku + ". No token.");
throw new IabException(IABHELPER_MISSING_TOKEN,
"PurchaseInfo is missing token for sku: " + sku + " "
+ itemInfo);
}
請讓我知道是否有人有關於此的想法。
爲consumeAsync代碼()
public void consumeAsync(Purchase purchase, OnConsumeFinishedListener listener) {
checkSetupDone("consume");
List<Purchase> purchases = new ArrayList<Purchase>();
purchases.add(purchase);
consumeAsyncInternal(purchases, listener, null);
}
public void consumeAsync(List<Purchase> purchases, OnConsumeMultiFinishedListener listener) {
checkSetupDone("consume");
consumeAsyncInternal(purchases, null, listener);
}
您可以提供consumeAsync()方法和異常堆棧跟蹤的代碼嗎? – Taoufix 2013-03-22 09:15:33
下面是consumeAsyc代碼, 公共無效consumeAsync(購購, \t \t \t OnConsumeFinishedListener聽者){ \t \t checkSetupDone( 「消耗」); \t \t列表購買=新ArrayList (); \t \t purchases.add(purchase); \t \t consumeAsyncInternal(purchases,listener,null); \t} ************ 公共無效consumeAsync(列表購買, \t \t \t OnConsumeMultiFinishedListener聽者){ \t \t checkSetupDone( 「消耗」); \t \t consumeAsyncInternal(purchases,null,listener); \t} –
2013-03-22 09:23:54
'consumeAsyncInternal'的代碼是否被重載?如果沒有,爲什麼你在'consumeAsyncInternal(purchases,listener,null);'中調用它;'在另一個情況下調用它'consumeAsyncInternal(purchases,null,listener);''參數的倒置似乎是尋找空指針異常的顯而易見的地方。 – jerry 2013-03-22 13:54:27