getBuyIntentExtraParams不存在?又如何使用版本6的应用内结算API?

时间:2017-01-24 17:25:31

标签: android in-app-billing

the Android Billing Docs描述的getBuyIntentExtraParams方法似乎无法在我的项目中正常运作。

我发现github上有一个open issue建议抓取the AIDL file from the Trivial Drive Android example application,但即使这样做,我也无法使v6 API正常工作(我得到了cannot find symbol误差)。

我的电话如下:

Bundle extraParams = new Bundle();
extraParams.putBoolean("replaceSkusProration", true);
String ownedSku = "someSkuAlreadyOwnedByTheUser";
ArrayList<String> replaceSkus = new ArrayList<String>();
replaceSkus.add(ownedSku);
extraParams.putStringArrayList("skusToReplace", replaceSkus);
Bundle buyIntentBundle = mService.getBuyIntentExtraParams(6, 
                         getPackageName(), sku, "subs", "BigOlRandomString", extraParams);

关于计费的其他所有事情似乎都很好......我在这里缺少什么?

编辑:我绝对可以让API v5正常工作,因为Android Studio非常乐意让我使用getBuyIntentToReplaceSkus功能。

1 个答案:

答案 0 :(得分:0)

日冰!

听起来你的版本没有从IInAppBillingService.java文件中生成IInAppBillingService.aidl。或者,如果 生成java文件,则项目不会引用生成的版本。在一天结束时,java文件中的方法声明是您的代码可以引用以解决cannot find symbol错误的方法。

我的具体项目没有使用AndroidStudio或gradle,因此我无法评论如何解决此步骤中的任何问题。不过Google确实提供了一些文档:Adding the AIDL file to your project。我相信目录和文件位置需要非常精确,AndroidStudio才能选择它。

请确保,一旦 ,请解决您在至少cannot find symbol的API版本中传递给第一个参数的6错误。< / p>

希望在8个月之后解锁你:D祝你好运!