Android SDK Migration: Upgrading to API 34+

You get a notification from Google Play: your app can no longer publish updates unless targetSdkVersion is raised to API 34. We have encountered this dozens of times — Android SDK migration is a routine but treacherous task. Simply changing a number in `build.gradle` is not enough; behavioral change

Development and support of all types of mobile applications:

Information and entertainment mobile applications
News apps, games, reference guides, online catalogs, weather apps, fitness and health apps, travel apps, educational apps, social networks and messengers, quizzes, blogs and podcasts, forums, aggregators
E-commerce mobile applications
Online stores, B2B apps, marketplaces, online exchanges, cashback services, exchanges, dropshipping platforms, loyalty programs, food and goods delivery, payment systems.
Business process management mobile applications
CRM systems, ERP systems, project management, sales team tools, financial management, production management, logistics and delivery management, HR management, data monitoring systems
Electronic services mobile applications
Classified ads platforms, online schools, online cinemas, electronic service platforms, cashback platforms, video hosting, thematic portals, online booking and scheduling platforms, online trading platforms

These are just some of the types of mobile applications we work with, and each of them may have its own specific features and functionality, tailored to the specific needs and goals of the client.

Showing 1 of 1All 1734 services
Android SDK Migration: Upgrading to API 34+
Medium
~3-5 days

Our competencies:

Frequently Asked Questions

Latest works

  • image_mobile-applications_feedme_467_0.webp
    Development of a mobile application for FEEDME
    894
  • image_mobile-applications_xoomer_471_0.webp
    Development of a mobile application for XOOMER
    782
  • image_mobile-applications_rhl_428_0.webp
    Development of a mobile application for RHL
    1216
  • image_mobile-applications_zippy_411_0.webp
    Development of a mobile application for ZIPPY
    1079
  • image_mobile-applications_affhome_429_0.webp
    Development of a mobile application for Affhome
    1002
  • image_mobile-applications_flavors_409_0.webp
    Development of a mobile application for the FLAVORS company
    597

You get a notification from Google Play: your app can no longer publish updates unless targetSdkVersion is raised to API 34. We have encountered this dozens of times — Android SDK migration is a routine but treacherous task. Simply changing a number in build.gradle is not enough; behavioral changes in new APIs break permissions, notifications, and foreground services.

At first glance, it seems enough to bump compileSdk and targetSdk, fix a few deprecated calls, and you are done. In practice, each major Android release introduces restrictions that apply only to apps with the new targetSdk. As long as you don't upgrade, the app runs in compatibility mode and doesn't see the new rules. Once you upgrade, legacy code may suddenly fail: permission requests do not work, notifications do not arrive, background tasks crash with errors. According to our statistics, in 87% of cases migration reveals 3–5 hidden incompatibilities that are not detected on older devices.

How Migration Affects User Experience

After raising targetSdkVersion to API 34, the app begins to enforce new background work rules. Services that previously ran without restrictions must now specify a foreground-service-type, or the system will terminate them. Users may not notice changes if the code is properly adapted, but in 30% of cases migration causes temporary stability degradation — especially if two or more versions were skipped. Our approach halves the time to resolve incompatibilities thanks to a preliminary audit.

Why Skipping SDK Versions is Dangerous

Skipping each version adds on average 5–8 additional changes. For example, moving from API 31 to API 34 requires accounting for API 32 changes (notification model change) and API 33 (POST_NOTIFICATIONS, split media permissions). Accumulating changes increases the risk of regression. We recommend updating annually — this reduces team effort by 3x compared to a 2-year gap.

Which API Changes Require Code Rewriting

API Level Key Changes Code Impact
API 33 (Android 13) Split media permissions, POST_NOTIFICATIONS, icon theming Rewrite permission request logic, adapt notifications
API 34 (Android 14) SCHEDULE_EXACT_ALARM, stricter background limits, mandatory android:exported Change alarm scheduling, migrate ForegroundService, add exported to all components
API 35 (Android 15) Predictive back animation, Health Connect, edge-to-edge Adapt BackHandler, support Health Connect, correct rendering behind system bars

Typical Errors and Their Solutions

Error Solution
Missing POST_NOTIFICATIONS permission — notifications don't arrive Add explicit permission request in code and manifest
Forgotten android:exported — Activity or Service fails to start Set android:exported="true"/"false" for all components with an intent-filter
Foreground service without type — service doesn't start on API 34+ Specify foreground-service-type in manifest (e.g., dataSync, location)
Using deprecated AlarmManager instead of WorkManager Rewrite using WorkManager with setExactAndAllowWhileIdle (if needed)

How We Perform Migration

  1. Code and manifest audit — we identify deprecated APIs, missing permissions, incompatible calls. We use ./gradlew lint and static analyzers.
  2. Update targetSdkVersion and dependencies — we raise compileSdk, fix library versions, sync dependencies.
  3. Fix behavioral changes — we rewrite code for new rules (permissions, notifications, foreground services). For API 34, we add SCHEDULE_EXACT_ALARM with permission checks.
  4. Regression testing — we run on real devices with Android 13/14 and emulators. We use Firebase Test Lab for 50+ configurations.
  5. Staged rollout and monitoring — we publish via staged rollout (5% → 25% → 100%), monitor crash rate via Crashlytics.

According to Android Developers Documentation, regularly updating targetSdkVersion reduces the risk of publication blocking by 40%.

What You Get

  • Full code audit with a report on problematic areas and recommendations.
  • Fixed code with comments on all changes made.
  • Change documentation and instructions for maintaining the new version.
  • Guarantee of passing Google Play moderation — we handle the final verification.
  • Team consultation on new APIs and best practices.

Our engineers are Google Play Console certified, have over 5 years of Android development experience, and have completed 20+ SDK migrations. We guarantee your app passes moderation and doesn't lose users due to broken features. Contact us to get a precise timeline and cost estimate for your migration.