
Play Billing Library Upgrade
FreeStreamline your Android billing library migrations.
Free · Opens the source repo
What Play Billing Library Upgrade does
The Play Billing Library Upgrade skill is designed specifically for developers who need to upgrade or migrate their Android projects from older versions of the Google Play Billing Library (PBL) to the latest stable release. This skill provides a structured approach to ensure that the migration process is efficient and minimizes the risk of issues arising from deprecated APIs or breaking changes. By following the outlined phases, developers can effectively assess their current implementation and plan a migration path that suits their project's needs.
The skill begins by establishing the current state of the billing library within the project. It checks the build version and attempts to build the project to identify any immediate issues. If the build fails, it scans for deprecated artifacts to determine the effective version of the library being used. This crucial step allows developers to understand how far behind they are and whether a direct or stepped migration is necessary. The skill then guides users through the necessary documentation, including migration guides and release notes, to develop a comprehensive plan for upgrading.
Once the planning phase is complete, the skill provides detailed instructions for executing the migration. This includes aligning the SDK and environment requirements, refactoring code based on intent rather than simple text replacement, and verifying changes through sequential builds. The final phase involves a thorough validation checklist to ensure that all necessary updates have been made and that the project is functioning correctly with the new library version. This systematic approach helps developers avoid common pitfalls associated with library upgrades and ensures a smooth transition to the latest features and improvements.
This skill is particularly useful for Android developers working on applications that rely on the Google Play Billing Library, especially those maintaining legacy code. By utilizing this skill, developers can save time, reduce errors, and enhance the overall quality of their applications as they transition to newer library versions.
When to use it
Use this skill when planning to upgrade an Android project from an older version of the Google Play Billing Library to the latest version.
When not to use it
This skill may not be suitable for projects that are already using the latest version of the billing library or for those that do not implement Google Play Billing features.
What you can build with it
Upgrading from PBL v7 to v9
A developer needs to upgrade their app from an older version of the Play Billing Library, ensuring that all deprecated APIs are addressed.
Migrating legacy code to the latest billing library
A team is maintaining an application that uses outdated billing methods and wants to modernize their codebase with the latest library features.
Planning a stepped migration for a large project
A project with significant dependencies on the billing library requires a careful, phased approach to upgrade without breaking existing functionality.
How to install Play Billing Library Upgrade
View source1. Install with the skills CLI
npx skills add android/skills/play-billing-library-version-upgrade --agent claude-code2. Or install it manually
Download the skill folder and drop it into ~/.claude/skills/ for all projects, or .claude/skills/ to scope it to one repo. Restart Claude Code so it picks up the new skill.
Anthropic's agentic coding CLI, and the reference implementation of Agent Skills. Drop a skill folder into ~/.claude/skills and Claude Code loads it automatically whenever a task matches the skill's description. Claude Code docs
Inside SKILL.md
Written by androidPhase 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
- Primary Check (Build Version) : Locate the project's billing dependency (e.g.,
com.android.billingclient:billing) inbuild.gradle,build.gradle.kts, orlibs.versions.toml. - Initial Compilation Test: Attempt to sync and build the project immediately.
- 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
SkuDetailsis present, treat the baseline as PBL v7 or earlier (regardless of the version string inbuild.gradle).
- 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 (where
[X]is the target major version). - Release Highlights : The "Deprecations" and "Breaking Changes" sections of the relevant Release Notes.
- 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.gradleto meet SDK requirements (e.g., "PBL 9 requirescompileSdk35"). - 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 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)
- Upgrade to the first major intermediate version in your path.
- Run
./gradlew assembleDebugto verify no intermediate breaking changes were missed. - Repeat until you reach the final target version.
Step 4: Final Validation Checklist
- Smart Checklist Verification:
- Open references/version-checklist.md and locate the Smart Version-Specific Checklist.
- 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.
- Tests : Run all unit and implementation tests (
./gradlew test). - Clean Build : Verify the project completes a full clean build:
./gradlew clean assembleDebug. Then, run./gradlew syncand./gradlew buildso 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 usingenableAutoServiceReconnection()." - "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."
Frequently asked questions about Play Billing Library Upgrade
Similar skills
Android App Development
Comprehensive guide for Android and cross-platform app development.
Add App Clip to Expo App
Integrate lightweight iOS App Clips into your Expo project.
APK Reverse
Streamline your Android APK reverse engineering process.
Swift Expert
Master iOS/macOS development with Swift and SwiftUI.
React Native Expert
Build and optimize mobile apps with React Native and Expo.
Kotlin Specialist
Master idiomatic Kotlin with expert patterns and practices.
