Android inapp账单responseList是空的

我在应用程序中定义了一些应用程序产品。 我已经将APK上传到Google Play,并在Google play上添加了inapp购买产品。

我有我的ServiceConnection定义如下:

 ServiceConnection mServiceConn = new ServiceConnection() { @Override public void onServiceDisconnected(ComponentName name) { mService = null; } @Override public void onServiceConnected(ComponentName name, IBinder service) { mService = IInAppBillingService.Stub.asInterface(service); connect(); } }; 

onServiceConnected函数被调用, bindService返回true。

接下来是connectfunction。

 public void connect() { new Thread(new Runnable() { public void run() { try { // Purchase type is "inapp", as required by API v3 Bundle skuDetails = mService.getSkuDetails(3, PACKET, "inapp", querySkus); } int response = skuDetails.getInt("RESPONSE_CODE"); Log.e("IAP connect", response + ""); if (response == 0) { ArrayList<String> responseList = skuDetails.getStringArrayList("DETAILS_LIST"); Log.e("size list", responseList.size()+""); ... } } } catch (RemoteException e) { e.printStackTrace(); } catch (JSONException e) { e.printStackTrace(); } } }).start(); } 

PACKET在这里被设置为getPackageName() 。 响应代码是0,但日志打印的是列表大小为0.我不知道为什么列表是空的,因为我已经总共向Google Playinput了5个项目,并且每个项目都处于活动状态。 我已经等了两天了,用三台设备进行了testing,但是还没有任何项目能够通过。

我几乎想尽一切办法,所以我们欢迎任何build议。

您需要您的应用程序发布到Beta / Alpha以访问inapp计费function。 它已经改变了,但他们没有公布:)

http://developer.android.com/google/play/billing/billing_testing.html#draft_apps

值得一提的是,您不必上传每个新版本就可以testing它。 只要使用相同的版本代码和版本名称,它将工作,如果应用程序发布。

你的代码看起来不错。

确保您查询正确的SKU。 querySkus中的单个项目必须完全匹配应用产品的ID。

其次确保查询正确的types,如果项目。 如果您在开发者控制台中将“在应用产品中”configuration为购买的汽车,请使用“inapp”。 如果您有订阅,请使用“subs”作为针对Google Play的查询types。

希望这可以帮助。