我已经实现了应用内结算功能,但我遇到了一个问题,即在购买时应用程序因nullpointerexception而崩溃。
E/AndroidRuntime( 6121): java.lang.NullPointerException
E/AndroidRuntime( 6121): at com.test.my.app.util.IabHelper.consume(IabHelper.java:660)
E/AndroidRuntime( 6121): at com.test.my.app.util.IabHelper$3.run(IabHelper.java:953)
E/AndroidRuntime( 6121): at java.lang.Thread.run(Thread.java:841)
在IabHelper第660行,我们发现:
if (!itemInfo.mItemType.equals(ITEM_TYPE_INAPP)) { //Crash happens here
throw new IabException(IABHELPER_INVALID_CONSUMPTION,
"Items of type '" + itemInfo.mItemType + "' can't be consumed.");
}
任何想法导致了什么?
答案 0 :(得分:0)
确保您正在消费的购买不为空,例如:
public void consumeItem(String SKU, IabHelper.OnConsumeFinishedListener listener){
Purchase purchase = mInventory.getPurchase(SKU);
if(purchase!=null) {
mHelper.consumeAsync(purchase, listener);
}
}