【问题标题】:Consume in app billing在应用计费中消费
【发布时间】:2014-08-15 01:48:15
【问题描述】:

我在应用计费方面遇到了一些问题,我想在应用内创建一个可以多次购买的产品。但谷歌在应用内计费的方式是,必须先消费产品,然后才能再次购买。我尝试使用以下代码来使用它:

     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 是问题所在。

提前致谢。

【问题讨论】:

    标签: android nullpointerexception billing consuming


    【解决方案1】:

    我在消费一个项目时也遇到了同样的问题。

    您无法在虚拟设备上测试应用内计费。这就是您得到 NullPointerException 的原因。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-11
      • 1970-01-01
      • 2011-07-24
      • 1970-01-01
      • 2013-05-06
      • 1970-01-01
      相关资源
      最近更新 更多