0

从 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)
4

0 回答 0