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
功能。
答案 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祝你好运!