Skip to main content
skill CX Codex

play-billing-library-version-upgrade — Claude Code skill

Walks an Android project from any legacy Google Play Billing Library version to the current stable one. It finds the Gradle dependency itself and rebuilds after every step.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add android/skills --skill play-billing-library-version-upgrade -a claude-code
Open on GitHub

What play-billing-library-version-upgrade does

The skill takes an Android project through a Play Billing Library upgrade. It looks for com.android.billingclient:billing in build.gradle, build.gradle.kts or libs.versions.toml, tries a build right away, and only scans the source for deprecated artifacts once that build falls over. The starting point comes from those artifacts: leftover SkuDetails means the project is treated as PBL v7 or older, whatever the version string claims.

From there it reads the migration guide and release notes for each major jump, prints a checklist of required edits, and works down the list. Two reference files ship with it: references/migration-logic.md holds the refactoring patterns, references/version-checklist.md the per-version checks.

More than two majors behind means a stepped path, two versions at a time, with ./gradlew assembleDebug after each hop. Skip that and missed breaking changes surface on the final version instead of the intermediate one. SDK requirements get aligned too; PBL 9 needs compileSdk 35. It closes with ./gradlew test, ./gradlew clean assembleDebug, ./gradlew sync and ./gradlew build, then explains each removal in the final report, such as dropping a hand-rolled retryConnection() now that enableAutoServiceReconnection() exists.

What it helps with

  • Bump com.android.billingclient:billing to the latest stable release
  • Work out the real PBL version when Gradle and the code disagree
  • Swap deprecated calls like SkuDetails for current classes
  • Split a multi-major jump into steps with a build check between them
  • Run the version checklist across every skipped release before shipping

Example prompts for the agent

  • Upgrade Play Billing Library to the latest stable version in this project, the dependency is in libs.versions.toml
  • There is still SkuDetails in the billing code, figure out the effective PBL version and migrate it
  • Walk the version checklist for every skipped PBL release and run ./gradlew test

How to install play-billing-library-version-upgrade

1Skills CLI (Vercel)

npx skills add android/skills --skill play-billing-library-version-upgrade -a claude-code

2Manually: put the files in place

~/.claude/skills/play-billing-library-version-upgrade/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/play-billing-library-version-upgrade/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about play-billing-library-version-upgrade

How do I install play-billing-library-version-upgrade in Claude Code?

Run npx skills add android/skills --skill play-billing-library-version-upgrade -a claude-code. The skill file then sits at ~/.claude/skills/play-billing-library-version-upgrade/SKILL.md.

What does play-billing-library-version-upgrade do?

It migrates an Android project off a legacy Play Billing Library version: locates the dependency, works out the effective version from deprecated APIs, draws up the edit plan, then verifies the result with tests and a build.

Does it migrate directly or in steps?

Within two major versions of the target it migrates directly. Further behind, it moves two major versions at a time and runs ./gradlew assembleDebug after each one.

Source text

SKILL.md · Apache-2.0
---
name: play-billing-library-version-upgrade
description: Use this skill when upgrading or migrating an Android project from any
  legacy Google Play Billing Library (PBL) version to the latest stable version of
  PBL.
license: Complete terms in LICENSE.txt
metadata:
  author: Google LLC
  last-updated: '2026-10-06'
  keywords:
  - android
  - play billing
  - play billing library
  - pbl
  - upgrade
  - migration
  - deprecation
  - google play
---

## Phase 0: Intent Message

**Reporting Action**: Before proceeding, immediately tell the user: "I will
upgrade Play Billing Library to the latest version."

## Phase 1: Discovery \& Situational Awareness

1. **Primary Check (Build Version)** : Locate the project's billing dependency (e.g., `com.android.billingclient:billing`) in `build.gradle`, `build.gradle.kts`, or `libs.versions.toml`.
2. **Initial Compilation Test**: Attempt to sync and build the project immediately.
3. **Fallback Discovery (Effective Version)** :
   - **Trigger**: Only if the build fails immediately, scan the source code for deprecated artifacts.
   - **Logic** : The presence of deprecated APIs indicates the **"Effective
     Version"** ---defined as the version where those specific APIs were **last
     available**, not when they were introduced.
   - **Example** : If `SkuDetails` is present, treat the baseline as **PBL v7** or earlier (regardless of the version string in `build.gradle`).
4. **Identify Target \& Path** : Access the version tool or release notes to find the latest stable version and calculate a \[Direct/Stepped\] migration path based on the **Effective Version** baseline.

- **Calculate Migration Path** :
  - If the **Effective Version** is within 2 major versions of the target: Plan a **Direct Migration**.
  - If it is more than 2 major versions behind: Plan a **Stepped
    Migration**. Migrate by two major versions at a time (e.g., v4 -\> v6 -\> v8) until you are within two versions of the target.
- **Reporting Action**: Before proceeding, tell the user: "I've detected you are effectively on PBL \[Current\] and the latest is \[Target\]. I am planning a \[direct/stepped\] migration path."

## Phase 2: Contextual Document Mapping \& Planning

For every major version jump identified in your path, you **MUST** synthesize
instructions from:

- **[Migration Guide](https://developer.android.com/google/play/billing/migrate-gpblv%5BX%5D)** (where `[X]` is the target major version).
- **Release Highlights** : The "Deprecations" and "Breaking Changes" sections of the relevant [Release Notes](references/android/google/play/billing/release-notes.md).
- **Developer Documentation**: Consult your knowledge of the Google Play Billing documentation regarding the relevant features used in this app (e.g., Subscriptions, One-Time Products).
- **Develop the Plan**: Identify every specific code change required (API removals, class replacements, logic shifts) and print this out as a checklist.

## Phase 3: Instructions for Execution

*Reporting Action: For each of the following steps, give a brief explanation of
what you will be doing prior to execution, and a brief summary of what you
accomplished afterwards.*

### Step 1: SDK \& Environment Alignment

- **Action** : Update `build.gradle` to meet SDK requirements (e.g., "PBL 9 requires `compileSdk` 35").
- **Gradle Version**: Verify if the new library requires a newer Android Gradle Plugin (AGP) or Kotlin version.

### Step 2: Intent-based Refactoring

Analyze the intent of the existing code rather than performing purely textual
string replacement.

- **Action** : You **MUST** follow all deprecation instructions and refactor patterns from **both** the [references/migration-logic.md](references/migration-logic.md) section, the official migration guides, and the general documentation pages identified in Phase 2.
- **Verification** : Verify you are doing **all steps from all documentation** and then making sure you follow the specific directions from the checklist in the references.

### Step 3: Sequential Verification (Only applicable for Stepped Migrations)

1. **Upgrade** to the first major intermediate version in your path.
2. **Run `./gradlew assembleDebug`** to verify no intermediate breaking changes were missed.
3. **Repeat** until you reach the final target version.

### Step 4: Final Validation Checklist

1. **Smart Checklist Verification**:
2. Open [references/version-checklist.md](references/version-checklist.md) and locate the **Smart Version-Specific Checklist**.
3. **Action**: For every version between your \[Detected Effective Version\] and \[Detected New Version\], verify that every item has been addressed in the code using "Find in Files" or structural analysis.
4. **Tests** : Run all unit and implementation tests (`./gradlew test`).
5. **Clean Build** : Verify the project completes a full clean build: `./gradlew clean assembleDebug`. Then, run `./gradlew sync` and `./gradlew build` so that the user can immediately test the new version manually.

## Final Report

Explain the "Why" to the developer:

- "I updated your SDK to \[Version\] because PBL \[Version\] requires it for \[Reason from docs\]."
- "I removed your custom `retryConnection()` logic because it is now handled natively by the library using `enableAutoServiceReconnection()`."
- "Successfully upgraded from PBL \[Old\] to PBL \[New\] and verified with unit tests. Based on an analysis of features in the latest library and this application's current feature set, I suggest exploring \[New Feature\] (e.g., Prepaid Plans or Installments) from the latest release because it is now available but not yet implemented."

© Google LLC · Apache-2.0 · android/skills

Similar skills

Everything for Mobile →

From the same set24

testing-setup Analyzes your Android app's testing strategy and installs libraries, infrastructure, and frameworks for unit tests, UI tests, screenshot tests, and end-to-end tests. CX Codex +1 2,500installs adaptive Guides the agent in adapting Android Compose UI for foldables, tablets, desktop, and phones. Helpful when supporting multiple screen sizes and input devices. CX Codex +1 2,400installs migrate-xml-views-to-jetpack-compose Guides the migration of one Android XML screen to Jetpack Compose, from project review through validation and legacy XML cleanup. CX Codex +1 2,400installs styles Walks an Android coding agent through moving a project onto the experimental Jetpack Compose Styles API, from Gradle opt-in to component-by-component migration. CX Codex +1 2,200installs android-intent-security Audits AndroidManifest.xml component settings and intent-handling code to stop Intent Redirection and unauthorized component execution. CX Codex +1 1,700installs engage-sdk-integration Takes an Android app through a Play Engage SDK integration: picks the right vertical, generates the publishing classes, then compiles until it builds. CX Codex +1 1,500installs display-glasses-with-jetpack-compose-glimmer Guidelines for building projected Android XR apps on display glasses with Jetpack Compose Glimmer: theming, focus and additive display behaviour. CX Codex +1 1,500installs appfunctions Analyzes Android apps and generates Kotlin code to expose key user workflows to on-device AI agents without opening the application UI. CX Codex +1 1,600installs

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor