您可以尝试以下解决方法:
确保您在应用中使用正确的商品ID进行购买。请检查您在代码中使用的商品ID是否与您在Google Play开发者控制台中配置的商品ID匹配。
确保您在代码中正确调用了queryPurchase()
方法。以下是一个示例代码:
// 创建IabHelper对象
IabHelper mHelper = new IabHelper(this, "YOUR_PUBLIC_KEY");
// 设置IabHelper的监听器
mHelper.startSetup(new IabHelper.OnIabSetupFinishedListener() {
@Override
public void onIabSetupFinished(IabResult result) {
if (result.isSuccess()) {
// 查询已购买的商品
mHelper.queryInventoryAsync(new IabHelper.QueryInventoryFinishedListener() {
@Override
public void onQueryInventoryFinished(IabResult result, Inventory inventory) {
if (result.isSuccess()) {
// 获取已购买的商品列表
List purchasedItems = inventory.getAllOwnedSkus(IabHelper.ITEM_TYPE_INAPP);
if (purchasedItems.size() > 0) {
// 处理已购买的商品
for (String sku : purchasedItems) {
Log.d("TAG", "已购买的商品:" + sku);
}
} else {
Log.d("TAG", "未购买任何商品");
}
} else {
Log.d("TAG", "查询购买失败:" + result.getMessage());
}
}
});
} else {
Log.d("TAG", "IabHelper设置失败:" + result.getMessage());
}
}
});
请注意,在上述代码中,您需要替换"YOUR_PUBLIC_KEY"
为您在Google Play开发者控制台中为您的应用生成的公钥。
确保您在测试购买时使用的是真实的Google账号,而不是测试账号。测试账号只能用于内部测试,而无法进行真实的购买。
如果您在测试过程中使用了测试账号进行购买,您需要在代码中配置测试账号。以下是一个示例代码:
// 创建IabHelper对象
IabHelper mHelper = new IabHelper(this, "YOUR_PUBLIC_KEY");
// 设置IabHelper的监听器
mHelper.startSetup(new IabHelper.OnIabSetupFinishedListener() {
@Override
public void onIabSetupFinished(IabResult result) {
if (result.isSuccess()) {
// 配置测试账号
mHelper.enableDebugLogging(true);
mHelper.enableDebugPlayStore(true);
// 查询已购买的商品
mHelper.queryInventoryAsync(new IabHelper.QueryInventoryFinishedListener() {
@Override
public void onQueryInventoryFinished(IabResult result, Inventory inventory) {
// 处理查询结果
}
});
} else {
Log.d("TAG", "IabHelper设置失败:" + result.getMessage());
}
}
});
在上述代码中,enableDebugLogging(true)
用于启用IabHelper的调试日志,enableDebugPlayStore(true)
用于启用测试账号。
希望这些解决方法能帮助您解决问题。如果问题仍然存在,请检查您的代码和配置是否正确,并确保您的应用已正确配置和发布到Google Play商店。