从Flutter的Play商店获取产品时,应用内购买会崩溃

时间:2020-06-13 16:58:38

标签: java android flutter in-app-purchase in-app-billing

在安装并实施in-app purchase plugin提供的Flutter团队后,我遇到了一个问题。 我到目前为止所做的:

  1. 在Play商店中添加了2个可见且有效的产品。
  2. 已提交构建版本以进行Alpha测试,因为应用程序内购买才能正常进行。
  3. 在应用启动时添加了InAppPurchaseConnection.enablePendingPurchases();
  4. 向应用商店创建了一系列请求,最后一个请求失败,并显示了我无法解决的令人讨厌的日志
bool available = await _iap.isAvailable();
  if (!available) {
    print('=========> The store cannot be reached or accessed.');
  } else {
    Set<String> _kIds = {'farm', 'forest'};
    ProductDetailsResponse productsResponse = await _iap.queryProductDetails(_kIds);
    List<ProductDetails> products = productsResponse.productDetails;
  }      
}
  1. 此刻queryProductDetails每次都崩溃,并显示以下日志:
E/AndroidRuntime( 9053): java.lang.NoSuchMethodError: No virtual method getIntroductoryPriceCycles()Ljava/lang/String; in class Lcom/android/billingclient/api/SkuDetails; or its super classes (declaration of 'com.android.billingclient.api.SkuDetails' appears in /data/app/com.my.fancy.app-6ImcBn8ELPgiO8hTXXp_3Q==/base.apk)
E/AndroidRuntime( 9053):    at io.flutter.plugins.inapppurchase.Translator.fromSkuDetail(Translator.java:27)
E/AndroidRuntime( 9053):    at io.flutter.plugins.inapppurchase.Translator.fromSkuDetailsList(Translator.java:49)
E/AndroidRuntime( 9053):    at io.flutter.plugins.inapppurchase.MethodCallHandlerImpl$1.onSkuDetailsResponse(MethodCallHandlerImpl.java:185)
E/AndroidRuntime( 9053):    at com.android.billingclient.api.zzj.run(com.android.billingclient:billing@@3.0.0:8)
E/AndroidRuntime( 9053):    at android.os.Handler.handleCallback(Handler.java:873)
E/AndroidRuntime( 9053):    at android.os.Handler.dispatchMessage(Handler.java:99)
E/AndroidRuntime( 9053):    at android.os.Looper.loop(Looper.java:193)
E/AndroidRuntime( 9053):    at android.app.ActivityThread.main(ActivityThread.java:6746)
E/AndroidRuntime( 9053):    at java.lang.reflect.Method.invoke(Native Method)
E/AndroidRuntime( 9053):    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
E/AndroidRuntime( 9053):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)

我尝试在多个示例项目上运行它,但失败了。尝试过Kotlin和Java项目,只是想看看彼此之间是否有故障,但是没有运气。

编辑(已修复问题): 该问题是由于build.gradle文件中链接的billingClient导致此问题而导致的。将其从gradle文件中删除后,一切都按预期开始工作。

1 个答案:

答案 0 :(得分:1)

这花了一段时间,但是以上这些似乎都不适合我。我发现,因为我也在使用RevenueCat,所以两个依赖项发生了冲突。到今天为止,将purchass_flutter替换为1.2.1而不是1.4.3为我解决了这个问题。