Repository navigation
Description
Summary
Request to bump com.android.billingclient:billing from 8.0.0 to 9.1.0 in in_app_purchase_android.
Filing now rather than closer to a mandate, because the diff appears to be mechanical today and this work has historically compressed against the deadline when left late.
Why this should be a small change
v9 removes a set of APIs, and the plugin already uses none of them — 0.5.0 (7.1.1 → 8.0.0) removed the last one:
| Removed in v9 | Status in 0.5.2 |
|---|---|
queryPurchaseHistoryAsync, QueryPurchaseHistoryParams |
not used (removed in 0.5.0) |
SkuDetails, SkuDetailsParams, SkuDetailsResponseListener, BillingClient.SkuType, get/setSkuDetailsList, querySkuDetailsAsync |
not used |
no-arg enablePendingPurchases() |
uses enablePendingPurchases(PendingPurchasesParams) — BillingClientFactoryImpl.java:29 |
queryPurchasesAsync(String, PurchasesResponseListener) |
uses QueryPurchasesParams — MethodCallHandlerImpl.java:420-423 |
The ProductDetailsResponseListener.onProductDetailsResponse() signature change flagged on the v9 migration page was already absorbed by the 8.0.0 work — MethodCallHandlerImpl.java:255-263 uses the two-arg callback with QueryProductDetailsResult.
Minor and unrelated: a few dartdoc comments still reference the removed BillingClient.queryPurchaseHistory (purchase_wrapper.dart:189,338, billing_client_wrapper.dart:23,215).
What does need handling
- Play Store blocked by the system (OEM kids mode) now reports
BILLING_UNAVAILABLEinstead ofERROR, and v9 requires androidx.core 1.9+. This surfaces to Dart throughBillingResponse, so it is a visible behaviour change for apps. targetSdkVersion35.
Not part of a version bump, but worth tracking separately: sub-response codes on launchBillingFlow() (PAYMENT_DECLINED_DUE_TO_INSUFFICIENT_FUNDS, USER_INELIGIBLE) and automatic service reconnection.
Why now rather than at the mandate
#171523 (v8) was filed 2025-07-02 and landed 2026-06-03, under three months before the 2026-08-31 deadline. v9 has no mandate yet, so doing it now gives the behaviour change soak time across apps — instead of every app being moved onto a freshly released plugin version at once, on the payment path, under time pressure.
Activity
stuartmorgan-g commentedon Jul 24, 2026
Sounds like this is blocked on #189862 then.
jesswrd commentedon Jul 28, 2026
android 1.9+ is blocked by agp being below 9.1.0: #189381 (comment)
Macacoazul01 commentedon Jul 30, 2026
Is this expected to land with some time to develop an apk update before the 2026-08-31 deadline?
We have a productive app that uses this plugin.
stuartmorgan-g commentedon Jul 31, 2026
@Macacoazul01 The 2026-08-31 deadline is to use v8, which the plugin already does. This issue is about updating from v8 to v9.
[in_app_purchase_android] Update to Play Billing Library 9.1.0 (flutt…
github-actions commentedon Nov 2, 2026
This thread has been automatically locked since there has not been any recent activity after it was closed. If you are still experiencing a similar issue, please open a new bug, including the output of
flutter doctor -vand a minimal reproduction of the issue.