---
id: "sdk-guides/android-native-10x-to-11x-migration"
title: "Android Native - 10.x to 11.x Migration"
description: "This release updates the SDK to Google Play Billing Library 9.1.0, Kotlin 2.2.21 and Jetpack Compose BOM 2026.06.01. The RevenueCat API itself is unchanged, but the new dependencies raise the build requirements of your app and can change the versions of libraries it already uses."
permalink: "/docs/sdk-guides/android-native-10x-to-11x-migration"
slug: "android-native-10x-to-11x-migration"
version: "current"
original_source: "docs/sdk-guides/android-native-10x-to-11x-migration.mdx"
---

> **AI agents:** This is the Markdown version of a RevenueCat documentation page. For the complete documentation index, see [llms.txt](https://www.revenuecat.com/docs/llms.txt).

This release updates the SDK to Google Play Billing Library 9.1.0, Kotlin 2.2.21 and Jetpack Compose BOM 2026.06.01. The RevenueCat API itself is unchanged, but the new dependencies raise the build requirements of your app and can change the versions of libraries it already uses.

### Kotlin 2.1.0 or newer

The minimum Kotlin version is now 2.1.0, up from 1.8.0 in v10. Older compilers fail with:

```
Module was compiled with an incompatible version of Kotlin.
The binary version of its metadata is 2.2.0, expected version is 2.0.0.
```

Update the Kotlin Gradle Plugin in your app to 2.1.0 or newer.

### compileSdk 35 or higher

Play Billing Library 9 depends on `androidx.core` 1.15.0, which requires apps to compile against API 35 or later. Your app, and any library module that depends on the SDK, must set `compileSdk = 35` or higher. Lower values fail with:

```
Execution failed for task ':app:checkDebugAarMetadata'.
> Dependency 'androidx.core:core:1.15.0' requires libraries and applications that
  depend on it to compile against version 35 or later of the
  Android APIs.
```

`minSdk` and `targetSdk` are not affected.

### Play Billing Library 9

The SDK now depends on Play Billing Library 9.1.0 ([release notes](https://developer.android.com/google/play/billing/release-notes#9-0-0)).

**Blocked Play Store reports `PurchaseNotAllowedError`.** When the Play Store app is blocked by the system (for example in OEM kids modes), the SDK now reports `PurchasesErrorCode.PurchaseNotAllowedError` instead of `PurchasesErrorCode.StoreProblemError`. If you branch on the error code to decide what to show the user, update that logic. `Purchases.canMakePayments` keeps returning `false` on these devices.

**Your own IAP code.** The SDK exposes Play Billing Library as an `api` dependency, so version 9.1.0 is on your compile classpath even if you never declared it. If you do declare it, it must be 9.0.0 or later. Play Billing Library 9 removed `SkuDetails`, `SkuDetailsParams`, `SkuDetailsResponseListener`, `BillingClient.SkuType`, `QueryPurchaseHistoryParams` and `BillingFlowParams.Builder.setSkuDetails`. Migrate any remaining uses to `ProductDetails`, `QueryProductDetailsParams` and `BillingClient.ProductType`.

### Jetpack Compose (RevenueCatUI)

RevenueCatUI now depends on Compose BOM 2026.06.01 and exports it as a platform constraint, so your own Compose dependencies resolve to at least that BOM's versions.

### Hybrid SDKs

The hybrid SDKs inherit these requirements:

- **React Native** ([v11 migration guide](https://github.com/RevenueCat/react-native-purchases/blob/main/migrations/v11-MIGRATION.md)): React Native 0.80.0 or newer (Expo SDK 54 or newer). A Kotlin version override must be 2.1.0 or newer.
- **Flutter** ([v11 migration guide](https://github.com/RevenueCat/purchases-flutter/blob/main/migrations/v11-MIGRATION.md)): set the `org.jetbrains.kotlin.android` version in `android/settings.gradle` to 2.1.0 or newer. On Flutter versions before 3.27, set `compileSdk = 35` explicitly.
- **Capacitor** ([v14 migration guide](https://github.com/RevenueCat/purchases-capacitor/blob/main/migrations/v14-MIGRATION.md)): Capacitor 8 projects already meet both requirements.
- **Cordova** ([v9 migration guide](https://github.com/RevenueCat/cordova-plugin-purchases/blob/main/migrations/v9-MIGRATION.md)): cordova-android 13 or newer. On 13, set the `android-compileSdkVersion` preference to 35. Apps that enable `GradlePluginKotlinEnabled` need `GradlePluginKotlinVersion` 2.1.0 or newer.
- **Unity** ([v10 migration guide](https://github.com/RevenueCat/purchases-unity/blob/main/migrations/v10-MIGRATION.md)): set the Target API Level to 35 or higher.
- **Kotlin Multiplatform** ([4.0.0 migration guide](https://github.com/RevenueCat/purchases-kmp/blob/main/migrations/4.0.0-MIGRATION.md)): set `compileSdk` to 35 or higher (36 with `purchases-kmp-either`).

### Reporting undocumented issues

Feel free to [file an issue](https://github.com/RevenueCat/purchases-android/issues/new/).
