首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android inventory.getSkuDetails()返回null

Android inventory.getSkuDetails()返回null
EN

Stack Overflow用户
提问于 2014-05-28 22:44:21
回答 2查看 14.4K关注 0票数 24

嗨,我正在尝试将应用程序购买添加到我的应用程序中,我已经在开发人员控制台上设置了我的应用程序购买,这些设置为活动的,然后我已经查询了它们,昨天工作得很好,我检索到了所有的细节,但今天它返回为空。唯一改变的是我不得不卸载应用程序并重新运行它。我已经在应用程序和开发人员控制台上检查了我的skus,它们完全匹配,当我运行IabHelper start setup时,我得到的结果是ok。然后我调用IabHelper.QueryInventoryFinishedListener,返回的结果是ok,但当我尝试访问清单中的任何内容时,它返回为null。有人知道为什么吗?或者如果我在代码中做了一些错误的事情?

在我的on Create()中;

代码语言:javascript
复制
mHelper = new IabHelper(this, base64EncodedPublicKey);
        mHelper.startSetup(new IabHelper.OnIabSetupFinishedListener() {
               public void onIabSetupFinished(IabResult result) {
                  if (!result.isSuccess()) {
                     // Oh noes, there was a problem.
                     Log.v("Menu", "Problem setting up In-app Billing: " + result);
                  }            
                     // Hooray, IAB is fully set up!  
                  Log.v("Menu", "INAPP BILLING SETUP COMPLETE: " + result);
                  ArrayList<String> skuList = new ArrayList<String> ();
                    skuList.add("myapp.consumable.inapppurchase_id_1");
                    skuList.add("myapp.consumable.inapppurchase_id_2");
                    skuList.add("myapp.consumable.inapppurchase_id_3");
                    skuList.add("myapp.permanant.inapppurchase_id_6");
                    skuArray = new JSONArray(skuList);

                    mHelper.queryInventoryAsync(true, skuList, mQueryFinishedListener);

               }
        });

下面是我的QueryListener代码

代码语言:javascript
复制
IabHelper.QueryInventoryFinishedListener mQueryFinishedListener = new IabHelper.QueryInventoryFinishedListener() {
       public void onQueryInventoryFinished(IabResult result, Inventory inventory)   
       {
          if (result.isFailure()) {
              Log.v("Menu", "RESULT FALIURE");
             return;
           }

      Log.v("Menu", "this +" + skuArray);
      Log.v("Menu", "Inventory +" + inventory);
      for(int i = 0; i < skuArray.length(); i++){
          try {
             String SKU = skuArray.getString(i);

             if(inventory.getSkuDetails(SKU) != null){
                 Log.v("Menu", "SKU = " + SKU);
                 Log.v("Menu", "SKU" + SKU + "= " + inventory.getSkuDetails(SKU));

                 updateProductData("price",inventory.getSkuDetails(SKU).getPrice(),i);
                 updateProductData("id",inventory.getSkuDetails(SKU).getSku(),i);


             }else{
                 Log.v("Menu", "SKU RETURNED NULL" + SKU); 
             }



        } catch (JSONException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }


      }

   }
}; 
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-05-29 15:47:14

好的,我和谷歌谈过这个问题。他们说,他们已经做了修改,要求在添加应用程序购买之前发布apk,他们建议将apk上传到alpha测试通道并发布(而不是以草稿模式)。

我会试一试,如果有效的话,我会给你反馈

票数 27
EN

Stack Overflow用户

发布于 2014-05-30 14:10:09

在我将我的alpha应用程序发布到google play之后,账单又开始起作用了。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23914789

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档