代码之家  ›  专栏  ›  技术社区  ›  JarsOfJam-Scheduler

Android Billing:实现广告会显示此错误:必须启用对待定购买的支持

  •  0
  • JarsOfJam-Scheduler  · 技术社区  · 6 年前

    根据文件,实施广告只是在应用程序消费品购买中, 当然,他们也不被允许等待购买! ( https://developer.android.com/google/play/billing/billing_rewarded_products + https://developer.android.com/google/play/billing/billing_onetime + https://developer.android.com/google/play/billing/billing_library_overview ).

    然而,我的应用程序在这一行崩溃了:

                    billingClient = BillingClient.newBuilder(fragmentActivity)
                            .setChildDirected(BillingClient.ChildDirected.CHILD_DIRECTED)
                            .setUnderAgeOfConsent(BillingClient.UnderAgeOfConsent.UNDER_AGE_OF_CONSENT)
                            .setListener(that).build();
    

    显示的错误是:

    JAVAlang.IllegalArgumentException:必须启用对待定购买的支持。通过调用BillingClientBuilder上的“enablePendingPurchases()”来启用此功能。

    所以根据我读到的文件,这是矛盾的。即使是简单的广告,也允许进行待定购买,这正常吗???

    0 回复  |  直到 6 年前
        1
  •  2
  •   Avinash Kumar Singh    6 年前

    你在stacktrace上提到的错误

    通过调用“enablePendingPurchases()”来启用此功能

    我们可以找到方法的文档 enablePendingPurchases()

    需要调用此方法来确认您的应用程序已更新,以支持待定的购买。未完成的购买不会自动启用,因为您的应用程序将需要更新,以确保在获得付款之前未授予权利。有关如何处理未决事务的更多信息,请参阅 https://developer.android.com/google/play/billing/billing_library_overview

    如果未调用此方法,则BillingClient实例创建失败

    你的代码应该是:-

        billingClient = BillingClient.newBuilder(fragmentActivity)
                                .setChildDirected(BillingClient.ChildDirected.CHILD_DIRECTED)
                                .enablePendingPurchases()
                                .setUnderAgeOfConsent(BillingClient.UnderAgeOfConsent.UNDER_AGE_OF_CONSENT)
                                .setListener(that).build();
    

    可能是你忘了加这一行 .enablePendingPurchases()

    希望能有所帮助

    推荐文章