[英]'Both methods have same erasure, yet neither overides the other' method clash error in SkuDetailsResponseListener()
我正在尝试实施新的应用内计费实施,因为普通驱动器 2 实施似乎已放弃支持。 以下用于创建我的 mSkuDetails 映射的代码给了我一个奇怪的方法冲突错误。 除了 Map 插入行之外,它是从文档中直接复制的。
List<String> skuList = new ArrayList<> ();
skuList.add("item1");
skuList.add("item2");
SkuDetailsParams.Builder params = SkuDetailsParams.newBuilder();
params.setSkusList(skuList).setType(BillingClient.SkuType.INAPP);
billingClient.querySkuDetailsAsync(params.build(),
new SkuDetailsResponseListener() {
@Override
public void onSkuDetailsResponse(BillingResult billingResult,
List<SkuDetails> skuDetailsList) {
if (billingResult.getResponseCode() ==
BillingClient.BillingResponseCode.OK && skuDetailsList != null) {
for (SkuDetails skuDetails : skuDetailsList) {
mSkuDetailsMap.put(skuDetails.getSku(), skuDetails);//will use this for purchase calls
}
}
}
});
至少可以说,关于此的错误消息没有帮助。 但是,当我碰巧替换时:
com.android.billingclient.api.SkuDetails//add prefix 'com.android.billingclient.api.'
对于“SkuDetails”的每个实例,像这段代码中的那些奇怪的错误都神奇地清除了。 还要在“购买”的每个实例之前添加前缀:
com.android.billingclient.api.Purchase//also add prefix before Purchase
修复了其他类似的错误。
这是带有两个替换的工作代码:
List<String> skuList = new ArrayList<> ();
skuList.add("item1");
skuList.add("item2");
SkuDetailsParams.Builder params = SkuDetailsParams.newBuilder();
params.setSkusList(skuList).setType(BillingClient.SkuType.INAPP);
billingClient.querySkuDetailsAsync(params.build(),
new SkuDetailsResponseListener() {
@Override
public void onSkuDetailsResponse(BillingResult billingResult,
List<com.android.billingclient.api.SkuDetails> skuDetailsList) {
if (billingResult.getResponseCode() ==
BillingClient.BillingResponseCode.OK && skuDetailsList != null) {
for (com.android.billingclient.api.SkuDetails skuDetails : skuDetailsList) {
mSkuDetailsMap.put(skuDetails.getSku(), skuDetails);//will use this for purchase calls
}
}
}
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.