我有以下代码,当我按下视图中的购买按钮时,它将被执行。
private void initiatePurchase() {
// Purchase Item
skuList.add(PRODUCT_ID); // <-- Product added to Play Console and Active
SkuDetailsParams.Builder params = SkuDetailsParams.newBuilder();
params.setSkusList(skuList).setType(INAPP);
billingClient.querySkuDetailsAsync(params.build(), new SkuDetailsResponseListener() {
@Override
public void onSkuDetailsResponse(BillingResult billingResult, List<SkuDetails> skuDetailsList) {
if (billingResult.getResponseCode() == BillingClient.BillingResponseCode.OK) {
Log.e(TAG, "*** skuDetailsList: " + skuDetailsList); // <-- Returns null!?
if (skuDetailsList != null && skuDetailsList.size() > 0) {
BillingFlowParams flowParams = BillingFlowParams.newBuilder().setSkuDetails(skuDetailsList.get(0)).build();
billingClient.launchBillingFlow(CreatePoolDetailsActivity.this, flowParams);
} else {
// This keeps getting executed - Purchase Item not Found!?
Toast.makeText(getApplicationContext(),"Purchase Item not Found",Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(getApplicationContext(), " Error " + billingResult.getDebugMessage(), Toast.LENGTH_SHORT).show();
问题是,skuDetailsList
总是为空(大小==0),并因此抛出错误信息Purchase Item not Found
;我不明白为什么,因为我的应用内购买设置正确,并在开发者控制台中激活?
有谁知道这是为什么,以及我怎样才能解决?