Upgrading React-Native from Android SDK 34 35: Real Issues, Real Fixes, and What No One Tells You

Upgrading your React-Native app from Android SDK 34 to 35 should be simple. Google releases a new SDK → you update compileSdkVersion and targetSdkVersion → rebuild → ship update. Right?

Wrong.
The Android 35 upgrade is one of the most painful upgrades…


This content originally appeared on DEV Community and was authored by Muhammad haris baig

Upgrading your React-Native app from Android SDK 34 to 35 should be simple. Google releases a new SDK → you update compileSdkVersion and targetSdkVersion → rebuild → ship update. Right?

Wrong.
The Android 35 upgrade is one of the most painful upgrades the community has faced since Android 28 → 29.
This article documents every issue I personally faced, how I fixed them, what other developers are reporting globally, and the ultimate fix almost no one talks about.
If you are upgrading your RN project to Android 35 - this guide will save you hours (or days) of debugging.

What I Upgraded

compileSdkVersion = 34 -> // upgrade to 35
targetSdkVersion = 35 -> // upgrade to 35
buildToolsVersion = "34.0.0" -> // upgrade to 35.0.0

I also added this to styles.xml (required for Android 15 / API 35 edge-to-edge changes):

<item name="android:windowOptOutEdgeToEdgeEnforcement">true</item>

My project is on:
React-Native 0.72.7
70+ libraries (Zego, Firebase, Notifee, Maps, FS, Vimeo, RN Config, etc.)
Kotlin code + Java code (important later)

The Nightmare Begins - AAPT2 Crash on Android 35

As soon as I attempted to build:

Execution failed for task :app:processProdDebugResources
Android resource linking failed
RES_TABLE_TYPE_TYPE entry offsets overlap actual entry data
Failed to load resources table in android-35/android.jar

This is a fatal AAPT2 crash that makes the entire build impossible.

I tried following:

✔ Deleted Android 35 platform
rm -rf ~/Library/Android/sdk/platforms/android-35
✔ Reinstalled using SDK Manager
 ✔ Invalidated caches
 ✔ Removed .gradle, build, intermediates
 ✔ Clean build / rebuild
 ✔ Reinstalled Android Studio
 ✔ Tried with Staging / Prod flavors

Nothing worked.
Why?

Because Android 35 ships a new resources table format, but AGP (Android Gradle Plugin) still ships an older AAPT2 binary that can't read it.

This is why the error mentions:

RES_TABLE_TYPE_TYPE entry offsets overlap actual entry data
The Fix Almost Nobody Knows
The build worked instantly when I added this to gradle.properties:
android.aapt2Version=8.6.1-11315950

✔ Why it works (short version)

Android 35 requires a newer AAPT2, not the old one bundled with AGP 7.x.
Setting this line downloads a fresh AAPT2 build:
8.6.1-11315950
…which can parse Android 35's updated android.jar.

BAM - build succeeds.

✔ Why Google doesn't document it

Because the official "fix" is to upgrade AGP to 8.x - but RN 0.72 cannot yet use AGP 8 safely.
So this property is an internal escape hatch that allows RN developers to upgrade without rewriting their entire Android build configuration.

The Next Problem: NoSuchMethodError reversed()

After the build succeeded, the app crashed:

java.lang.NoSuchMethodError: No virtual method reversed()Ljava/util/List;

This happened because:
JDK 17+ ships List.reversed()
But many RN/Kotlin libraries compile against older Kotlin stdlib
When mixed, Dalvik cannot locate the JDK method → runtime crash

✔ How I fixed it
I replaced all occurrences of reversed() with:
asReversed()
This exists in older Kotlin stdlib and works everywhere.
I patched my own Kotlin code AND created patches for:
react-native-screens
react-native-gesture-handler

Because these libs internally used reversed() as well.
I applied the patches using patch-package.
Expect MORE Errors While Upgrading - Common Issues (Community Reports)

Developers upgrading to 35 commonly see:
🔻 AAPT2 resource linking crash
🔻 "Execution failed for task :app:mergeDebugResources"
Caused by broken vector drawables under new validator.

🔻 Edge-to-edge mandatory updates
styles.xml must contain:
<item name="android:windowOptOutEdgeToEdgeEnforcement">true</item>
🔻 Kotlin / Java binary incompatibilities
reversed(), JDK 17 methods missing, etc.
🔻 Build tools mismatch
Build-tools 35.0.0 is still in preview so many users end up with partial installs.
🔻 Firebase / Notifee / React-Native-Maps needing updated peer versions
Especially with 35's new system location permissions.

🛠 6. Full Checklist for Upgrading React-Native from API 34 → 35
1️⃣ Update build configuration
android/build.gradle:
compileSdkVersion 35
targetSdkVersion 35

2️⃣ Add required edge-to-edge rules
res/values/styles.xml:
<item name="android:windowOptOutEdgeToEdgeEnforcement">true</item>

3️⃣ Fix AAPT2 crash
gradle.properties:
android.aapt2Version=8.6.1-11315950

4️⃣ Upgrade Android Build Tools
SDK Manager → Install:
Android SDK Platform 35
Build Tools 35.x.x

5️⃣ Fix Kotlin/JDK reversed() crash
Search project:
reversed()
Replace with:
asReversed()
Apply patches for:
RN Screens
Gesture Handler

6️⃣ Rebuild
cd android
./gradlew clean
./gradlew assembleDebug

🏁 7. Final Result
After applying:
✔ AAPT2 upgrade
 ✔ Edge-to-edge opt-out
 ✔ Kotlin reversed() fix
 ✔ Library patches
The project builds and runs on:
Android 15 emulator, Api 29 till api 35 builds fine
Physical Pixel device
Both debug and release
All staging / prod flavors

Zero crashes, zero resource failures.


This content originally appeared on DEV Community and was authored by Muhammad haris baig


Print Share Comment Cite Upload Translate Updates
APA

Muhammad haris baig | Sciencx (2025-11-18T18:36:21+00:00) Upgrading React-Native from Android SDK 34 35: Real Issues, Real Fixes, and What No One Tells You. Retrieved from https://www.scien.cx/2025/11/18/upgrading-react-native-from-android-sdk-34-35-real-issues-real-fixes-and-what-no-one-tells-you/

MLA
" » Upgrading React-Native from Android SDK 34 35: Real Issues, Real Fixes, and What No One Tells You." Muhammad haris baig | Sciencx - Tuesday November 18, 2025, https://www.scien.cx/2025/11/18/upgrading-react-native-from-android-sdk-34-35-real-issues-real-fixes-and-what-no-one-tells-you/
HARVARD
Muhammad haris baig | Sciencx Tuesday November 18, 2025 » Upgrading React-Native from Android SDK 34 35: Real Issues, Real Fixes, and What No One Tells You., viewed ,<https://www.scien.cx/2025/11/18/upgrading-react-native-from-android-sdk-34-35-real-issues-real-fixes-and-what-no-one-tells-you/>
VANCOUVER
Muhammad haris baig | Sciencx - » Upgrading React-Native from Android SDK 34 35: Real Issues, Real Fixes, and What No One Tells You. [Internet]. [Accessed ]. Available from: https://www.scien.cx/2025/11/18/upgrading-react-native-from-android-sdk-34-35-real-issues-real-fixes-and-what-no-one-tells-you/
CHICAGO
" » Upgrading React-Native from Android SDK 34 35: Real Issues, Real Fixes, and What No One Tells You." Muhammad haris baig | Sciencx - Accessed . https://www.scien.cx/2025/11/18/upgrading-react-native-from-android-sdk-34-35-real-issues-real-fixes-and-what-no-one-tells-you/
IEEE
" » Upgrading React-Native from Android SDK 34 35: Real Issues, Real Fixes, and What No One Tells You." Muhammad haris baig | Sciencx [Online]. Available: https://www.scien.cx/2025/11/18/upgrading-react-native-from-android-sdk-34-35-real-issues-real-fixes-and-what-no-one-tells-you/. [Accessed: ]
rf:citation
» Upgrading React-Native from Android SDK 34 35: Real Issues, Real Fixes, and What No One Tells You | Muhammad haris baig | Sciencx | https://www.scien.cx/2025/11/18/upgrading-react-native-from-android-sdk-34-35-real-issues-real-fixes-and-what-no-one-tells-you/ |

Please log in to upload a file.




There are no updates yet.
Click the Upload button above to add an update.

You must be logged in to translate posts. Please log in or register.