Encore Android SDK 2.1.0
Maven Central: com.encorekit:encore:2.1.0
implementation("com.encorekit:encore:2.1.0")Play Billing floor raised to 8.0.0
The SDK now declares com.android.billingclient:billing:8.0.0 (previously billing-ktx:7.1.1). This fixes a NoSuchMethodError in the purchase reconciler that occurred when a host app's dependency graph resolved Play Billing 8.x or 9.x: the SDK's prebuilt bytecode called enablePendingPurchases() with a signature that Billing 8.0.0 removed.
What this means for your build:
- If your app already resolves Billing 8.x or 9.x, nothing changes for you except that the error is gone. Gradle resolves the highest version in the graph.
- If your app is on Billing 7.x, resolution will raise you to 8.0.0. Google Play stopped accepting Billing 7.x submissions on 2026-08-31, so this is a move you need regardless.
- Claim-only integrations (no purchase controller registered) are unaffected by Billing entirely. Billing is a runtime-scope dependency; the claim and entitlement paths do not touch it. Stripping
com.android.vending.BILLINGfrom the merged manifest withtools:node="remove"is fine in that configuration.
Purchase controller is optional
A claim-only integration with no purchaseController is a supported configuration. With none registered, an offer configured for in-app purchase resolves PublisherOutcome.NotAttempted, a warning is logged, and nothing is charged.
Other changes
- Users handshake: the SDK announces the user record on identity creation (
POST /publisher/sdk/v1/users) and announces aliases onidentify(). - Error reporting: silent degradation paths now report to the backend with full stack traces.
- SDUI: snapped carousel cards centre on any viewport width (
scrollAlignment: center); the offer footer's copy column is capped so the claim button always lays out. - Outbox: a transient failure retires only its own target rather than the whole pass; a non-suspending submit is available for callers that cannot await the persist.
- Toolchain: built with the Kotlin 2.1 compiler; the language floor stays 1.9 and
kotlin-stdlibis declared at that floor rather than stripped from the POM.
Compatibility
All published guarantees are within the 2.x major. Public API signatures are baselined and checked in CI; no public signature changed in this release.