从 In App Purchase 调用以下方法时,我收到空指针异常错误。我在手机上进行了测试,它似乎工作正常。但是,在 ANR 和崩溃中,我看到人们在这一行得到了空指针异常
inv = queryInventory(querySkuDetails, moreItemSkus, moreSubsSkus);
以下是我在应用程序中使用的 IAP 示例代码中的代码。
public void queryInventoryAsync(final boolean querySkuDetails, final List<String> moreItemSkus,
final List<String> moreSubsSkus, final QueryInventoryFinishedListener listener)
throws IabAsyncInProgressException {
final Handler handler = new Handler();
checkNotDisposed();
checkSetupDone("queryInventory");
flagStartAsync("refresh inventory");
(new Thread(new Runnable() {
public void run() {
IabResult result = new IabResult(BILLING_RESPONSE_RESULT_OK, "Inventory refresh successful.");
Inventory inv = null;
try {
inv = queryInventory(querySkuDetails, moreItemSkus, moreSubsSkus); // line where null pointer exception is return
}
catch (IabException ex) {
result = ex.getResult();
}
flagEndAsync();
final IabResult result_f = result;
final Inventory inv_f = inv;
if (!mDisposed && listener != null) {
handler.post(new Runnable() {
public void run() {
listener.onQueryInventoryFinished(result_f, inv_f);
}
});
}
}
})).start();
}
这是我从 ANR 和崩溃中看到的完整错误
java.lang.NullPointerException:
at com.toksampleapp.util.IabHelper.queryPurchases
(IabHelper.java:945)
at com.toksampleapp.util.IabHelper.queryInventory
(IabHelper.java:624)
at com.toksampleapp.util.IabHelper$2.run (IabHelper.java:698)
at java.lang.Thread.run (Thread.java:818)