android中的google inapp详细信息

时间:2013-08-26 13:06:12

标签: android in-app-billing

我在google上工作, 下面是我的代码我想得到我所有inapp产品的所有信息,但如何比较arraylist对象与字符串,它显示错误on for循环“无法将元素类型对象转换为字符串”

ArrayList skuList = new ArrayList();
       skuList.add("premiumUpgrade"); 
       skuList.add("gas");
       Bundle querySkus = new Bundle();
       querySkus.putStringArrayList("ITEM_ID_LIST", skuList);

       Bundle skuDetails = mService.getSkuDetails(3, getPackageName(),"inapp", querySkus);

       int response = skuDetails.getInt("RESPONSE_CODE");
       if (response == 0)
       {
           ArrayList responseList 
              = skuDetails.getStringArrayList("DETAILS_LIST");

           for (String thisResponse : responseList)
           {
               JSONObject object = new JSONObject(thisResponse);
               String sku = object.getString("productId");
               String price = object.getString("price");
               if (sku.equals("premiumUpgrade")) 
               {
                  // mPremiumUpgradePrice = price;
                   Log.i("price", price);
               } else if (sku.equals("gas")) { 
                  // mGasPrice = price;
                   Log.i("price", price);
               }
           }
       }

2 个答案:

答案 0 :(得分:0)

好的,你试着这样做:将STRING添加到ArrayList的定义

ArrayList<String> responseList 
              = skuDetails.getStringArrayList("DETAILS_LIST");

因为您没有定义数组列表中的内容,所以无法盲目地进行转换。

答案 1 :(得分:0)

我有这个问题已经有一段时间了。修复它的原因是确保我的清单中的版本代码和版本名称与我的google play dev控制台上的版本名称相匹配。

从技术上讲,要使这些服务正常运行,您的应用必须“发布”,但将版本代码和版本名称与您发布的版本的代码和名称相匹配也将起到作用。

希望这有帮助! :)