Skip to content

[Android] Page Size issue - 16KB page size requirements #53649

Description

@incredev34

Description

I have recently upgraded the Android version from v14 to v15. Since then I have this issue on my local emulator and from Google Play console team.

Your app is affected by Google Play's 16 KB page size requirements -- We may have accidentally sent you an email with an incorrect deadline. The correct deadline is Nov 1, 2025.You can automatically extend this deadline to May 31, 2026 in Play Console. Please see below for the corrected message.To ensure your app works correctly on the latest versions of Android, Google Play requires all apps targeting Android 15+ to support 16 KB memory page sizes.From Nov 1, 2025, if your app updates do not support 16 KB memory page sizes, you won't be able to release these updates.

To fix this issue, I updated the NDK version to higher than v28 but my react-native(v0.75.3) and expo(v51.0.0) is outdated to use that NDK version. So I tried to upgrade the Expo version to v53.0.0 and then run npx expo install --check to upgrade all the dependencies. And here's the upgraded package.json file:

    "scripts": {
        "android": "react-native run-android",
        "ios": "react-native run-ios",
        "lint": "eslint .",
        "start": "react-native start",
        "test": "jest",
        "postinstall": "patch-package",
        "eas-build-pre-install": "./scripts/eas-build-pre-install.sh"        
    },
    "dependencies": {
        "@auth0/nextjs-auth0": "^3.5.0",
        "@circleco/headless-server-sdk": "^0.0.5",
        "@gorhom/bottom-sheet": "^5.0.2",
        "@react-native-async-storage/async-storage": "2.1.2",
        "@react-native-community/datetimepicker": "8.4.1",
        "@react-native-community/masked-view": "^0.1.11",
        "@react-native-firebase/app": "21.0.0",
        "@react-native-firebase/messaging": "21.0.0",
        "@react-native/gradle-plugin": "^0.76.3",
        "@react-navigation/bottom-tabs": "^6.6.1",
        "@react-navigation/core": "^6.4.17",
        "@react-navigation/native": "^6.1.18",
        "@react-navigation/stack": "^6.4.1",
        "@reduxjs/toolkit": "^2.2.7",
        "@sanity/client": "^6.22.1",
        "@sanity/image-url": "^1.1.0",
        "@sentry/react-native": "~6.14.0",
        "@sentry/wizard": "^3.36.0",
        "@supabase/supabase-js": "^2.45.4",
        "@tanstack/query-async-storage-persister": "^5.59.0",
        "@tanstack/react-query": "^5.59.0",
        "@tanstack/react-query-persist-client": "^5.59.0",
        "@tsconfig/react-native": "^3.0.5",
        "@types/hammerjs": "^2.0.45",
        "axios": "^1.7.7",
        "axios-logger": "^2.8.1",
        "babel-plugin-module-resolver": "^5.0.2",
        "date-fns": "^4.1.0",
        "expo": "^53.0.0",
        "expo-updates": "~0.28.17",
        "jwt-decode": "^4.0.0",
        "lottie-react-native": "7.2.2",
        "patch-package": "^8.0.0",
        "posthog-react-native": "^3.4.0",
        "react": "19.0.0",
        "react-dom": "19.0.0",
        "react-hook-form": "^7.53.0",
        "react-native": "0.79.5",
        "react-native-async-storage": "^0.0.1",
        "react-native-auth0": "^3.2.1",
        "react-native-bouncy-checkbox": "^4.1.2",
        "react-native-config": "^1.5.3",
        "react-native-date-picker": "5.0.8",
        "react-native-device-info": "^14.0.4",
        "react-native-fast-image": "^8.6.3",
        "react-native-gesture-handler": "~2.24.0",
        "react-native-gradle-plugin": "^0.71.19",
        "react-native-keyboard-aware-scroll-view": "^0.9.5",
        "react-native-modal-datetime-picker": "^18.0.0",
        "react-native-permissions": "^5.2.5",
        "react-native-reanimated": "~3.17.4",
        "react-native-redash": "^18.1.3",
        "react-native-restart": "^0.0.27",
        "react-native-safe-area-context": "5.4.0",
        "react-native-screens": "~4.11.1",
        "react-native-snap-carousel": "^3.9.1",
        "react-native-splash-screen": "^3.3.0",
        "react-native-svg": "15.11.2",
        "react-native-toast-message": "^2.2.1",
        "react-native-url-polyfill": "^2.0.0",
        "react-native-uuid": "^2.0.2",
        "react-native-webview": "13.13.5",
        "react-redux": "^9.1.2",
        "reanimated-utils": "^1.1.0",
        "redux-persist": "^6.0.0",
        "reselect": "^5.1.1",
        "styled-components": "^6.1.16"
    },
    "devDependencies": {
        "@babel/core": "^7.26.0",
        "@babel/preset-env": "^7.26.0",
        "@babel/runtime": "^7.26.0",
        "@react-native-community/cli": "^18.0.0",
        "@react-native/babel-preset": "0.79.5",
        "@react-native/eslint-config": "0.79.5",
        "@react-native/metro-config": "0.79.5",
        "@react-native/typescript-config": "0.79.5",
        "@types/react": "~19.0.10",
        "@types/react-native-snap-carousel": "^3.8.11",
        "@types/react-query": "^1.2.9",
        "@types/react-test-renderer": "^18.0.0",
        "babel-jest": "^29.6.3",
        "babel-plugin-module-resolver": "^5.0.2",
        "eslint": "^8.19.0",
        "jest": "^29.6.3",
        "metro-react-native-babel-preset": "0.77.0",
        "prettier": "2.8.8",
        "react-native-devsettings": "^1.0.5",
        "react-native-dotenv": "^3.4.11",
        "react-test-renderer": "18.3.1",
        "typescript": "~5.8.3"
    },
    "engines": {
        "node": ">=18"
    }

After upgraded the dependencies I run yarn start --reset-cache and then after running the metro bundler, I run yarn android. The build was successful but after running the application the app is shutting down immediately after opening.

I run adb logcat | grep -E "(AndroidRuntime|ReactNativeJS|ExpoModulesCore)" to see the ADB issue since it shut down without any error messages and here's issue:

09-06 01:24:10.278 25842 25842 E AndroidRuntime: Process: com...., PID: 25842
09-06 01:24:10.278 25842 25842 E AndroidRuntime: com.facebook.soloader.SoLoaderDSONotFoundError: couldn't find DSO to load: libreact_featureflagsjni.so
09-06 01:24:10.278 25842 25842 E AndroidRuntime:        existing SO sources:
09-06 01:24:10.278 25842 25842 E AndroidRuntime:                SoSource 0: ApplicationSoSource[DirectorySoSource[root = /data/app/~~tSYtSfc4Z_TlZb0MeYfaWQ==/com....-Uiclpx92lihf24S1MOIGRw==/lib/x86_64 flags = 0]]
09-06 01:24:10.278 25842 25842 E AndroidRuntime:                SoSource 1: DirectApkSoSource[root = [/data/app/~~tSYtSfc4Z_TlZb0MeYfaWQ==/com....-Uiclpx92lihf24S1MOIGRw==/base.apk!/lib/x86_64]]
09-06 01:24:10.278 25842 25842 E AndroidRuntime:                SoSource 2: DirectorySoSource[root = /system/lib64 flags = 3]
09-06 01:24:10.278 25842 25842 E AndroidRuntime:                SoSource 3: DirectorySoSource[root = /vendor/lib64 flags = 3]
09-06 01:24:10.278 25842 25842 E AndroidRuntime:        Native lib dir: /data/app/~~tSYtSfc4Z_TlZb0MeYfaWQ==/com....-Uiclpx92lihf24S1MOIGRw==/lib/x86_64
09-06 01:24:10.278 25842 25842 E AndroidRuntime:
09-06 01:24:10.278 25842 25842 E AndroidRuntime:        at com.facebook.soloader.SoLoader.doLoadLibraryBySoName(SoLoader.java:1216)
09-06 01:24:10.278 25842 25842 E AndroidRuntime:        at com.facebook.soloader.SoLoader.loadLibraryBySoNameImpl(SoLoader.java:1078)
09-06 01:24:10.278 25842 25842 E AndroidRuntime:        at com.facebook.soloader.SoLoader.loadLibraryBySoName(SoLoader.java:943)
09-06 01:24:10.278 25842 25842 E AndroidRuntime:        at com.facebook.soloader.SoLoader.loadLibraryOnAndroid(SoLoader.java:859)
09-06 01:24:10.278 25842 25842 E AndroidRuntime:        at com.facebook.soloader.SoLoader.loadLibrary(SoLoader.java:842)
09-06 01:24:10.278 25842 25842 E AndroidRuntime:        at com.facebook.soloader.SoLoader.loadLibrary(SoLoader.java:812)
09-06 01:24:10.278 25842 25842 E AndroidRuntime:        at com.facebook.react.internal.featureflags.ReactNativeFeatureFlagsCxxInterop.<clinit>(ReactNativeFeatureFlagsCxxInterop.kt:28)
09-06 01:24:10.278 25842 25842 E AndroidRuntime:        at com.facebook.react.internal.featureflags.ReactNativeFeatureFlagsCxxAccessor.enableBridgelessArchitecture(ReactNativeFeatureFlagsCxxAccessor.kt:98)
09-06 01:24:10.278 25842 25842 E AndroidRuntime:        at com.facebook.react.internal.featureflags.ReactNativeFeatureFlags.enableBridgelessArchitecture(ReactNativeFeatureFlags.kt:53)
09-06 01:24:10.278 25842 25842 E AndroidRuntime:        at expo.modules.rncompatibility.ReactNativeFeatureFlags.<clinit>(ReactNativeFeatureFlags.kt:11)
09-06 01:24:10.278 25842 25842 E AndroidRuntime:        at expo.modules.ReactActivityDelegateWrapper$onCreate$1.invokeSuspend(ReactActivityDelegateWrapper.kt:160)
09-06 01:24:10.278 25842 25842 E AndroidRuntime:        at expo.modules.ReactActivityDelegateWrapper$onCreate$1.invoke(Unknown Source:8)
09-06 01:24:10.278 25842 25842 E AndroidRuntime:        at expo.modules.ReactActivityDelegateWrapper$onCreate$1.invoke(Unknown Source:4)
09-06 01:24:10.278 25842 25842 E AndroidRuntime:        at expo.modules.ReactActivityDelegateWrapper$launchLifecycleScopeWithLock$1.invokeSuspend(ReactActivityDelegateWrapper.kt:485)
09-06 01:24:10.278 25842 25842 E AndroidRuntime:        at expo.modules.ReactActivityDelegateWrapper$launchLifecycleScopeWithLock$1.invoke(Unknown Source:8)
09-06 01:24:10.278 25842 25842 E AndroidRuntime:        at expo.modules.ReactActivityDelegateWrapper$launchLifecycleScopeWithLock$1.invoke(Unknown Source:4)
09-06 01:24:10.278 25842 25842 E AndroidRuntime:        at kotlinx.coroutines.intrinsics.UndispatchedKt.startCoroutineUndispatched(Undispatched.kt:44)
09-06 01:24:10.278 25842 25842 E AndroidRuntime:        at kotlinx.coroutines.CoroutineStart.invoke(CoroutineStart.kt:112)
09-06 01:24:10.278 25842 25842 E AndroidRuntime:        at kotlinx.coroutines.AbstractCoroutine.start(AbstractCoroutine.kt:126)
09-06 01:24:10.278 25842 25842 E AndroidRuntime:        at kotlinx.coroutines.BuildersKt__Builders_commonKt.launch(Builders.common.kt:56)
09-06 01:24:10.278 25842 25842 E AndroidRuntime:        at kotlinx.coroutines.BuildersKt.launch(Unknown Source:1)
09-06 01:24:10.278 25842 25842 E AndroidRuntime:        at kotlinx.coroutines.BuildersKt__Builders_commonKt.launch$default(Builders.common.kt:47)
09-06 01:24:10.278 25842 25842 E AndroidRuntime:        at kotlinx.coroutines.BuildersKt.launch$default(Unknown Source:1)
09-06 01:24:10.278 25842 25842 E AndroidRuntime:        at expo.modules.ReactActivityDelegateWrapper.launchLifecycleScopeWithLock(ReactActivityDelegateWrapper.kt:483)     
09-06 01:24:10.278 25842 25842 E AndroidRuntime:        at expo.modules.ReactActivityDelegateWrapper.onCreate(ReactActivityDelegateWrapper.kt:150)
09-06 01:24:10.278 25842 25842 E AndroidRuntime:        at com.facebook.react.ReactActivity.onCreate(ReactActivity.java:47)
09-06 01:24:10.278 25842 25842 E AndroidRuntime:        at android.app.Activity.performCreate(Activity.java:9002)
09-06 01:24:10.278 25842 25842 E AndroidRuntime:        at android.app.Activity.performCreate(Activity.java:8980)
09-06 01:24:10.278 25842 25842 E AndroidRuntime:        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1526)
09-06 01:24:10.278 25842 25842 E AndroidRuntime:        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:4030)
09-06 01:24:10.278 25842 25842 E AndroidRuntime:        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:4235)
09-06 01:24:10.278 25842 25842 E AndroidRuntime:        at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:112)
09-06 01:24:10.278 25842 25842 E AndroidRuntime:        at android.app.servertransaction.TransactionExecutor.executeNonLifecycleItem(TransactionExecutor.java:174)
09-06 01:24:10.278 25842 25842 E AndroidRuntime:        at android.app.servertransaction.TransactionExecutor.executeTransactionItems(TransactionExecutor.java:109)
09-06 01:24:10.278 25842 25842 E AndroidRuntime:        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:81)
09-06 01:24:10.278 25842 25842 E AndroidRuntime:        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2636)
09-06 01:24:10.278 25842 25842 E AndroidRuntime:        at android.os.Handler.dispatchMessage(Handler.java:107)
09-06 01:24:10.278 25842 25842 E AndroidRuntime:        at android.os.Looper.loopOnce(Looper.java:232)
09-06 01:24:10.279 25842 25842 E AndroidRuntime:        at android.os.Looper.loop(Looper.java:317)
09-06 01:24:10.279 25842 25842 E AndroidRuntime:        at android.app.ActivityThread.main(ActivityThread.java:8705)
09-06 01:24:10.279 25842 25842 E AndroidRuntime:        at java.lang.reflect.Method.invoke(Native Method)
09-06 01:24:10.279 25842 25842 E AndroidRuntime:        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:580)
09-06 01:24:10.279 25842 25842 E AndroidRuntime:        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:886)
09-06 01:24:10.279 25842 25842 E AndroidRuntime:        Suppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException: [StandaloneCoroutine{Cancelling}@6653897, Dispatchers.Main.immediate]
09-06 01:25:53.754 26256 26256 F DEBUG   :       #21 pc 00000000000f3352  /system/lib64/libandroid_runtime.so (android::AndroidRuntime::javaThreadShell(void*)+146) (BuildId: 74e467b22a4c3107eac51948743c9977)

How can I run the project successfully on my local and continue to develop?

Steps to reproduce

Please see the description

React Native Version

0.79.5

Affected Platforms

Runtime - Android

Output of npx @react-native-community/cli info

System:
  OS: Windows 11 10.0.26100
  CPU: (20) x64 13th Gen Intel(R) Core(TM) i7-13650HX
  Memory: 4.45 GB / 39.69 GB
Binaries:
  Node:
    version: 22.14.0
    path: C:\nvm4w\nodejs\node.EXE
  Yarn:
    version: 1.22.22
    path: C:\nvm4w\nodejs\yarn.CMD
  npm:
    version: 10.9.2
    path: C:\nvm4w\nodejs\npm.CMD
  Watchman: Not Found
SDKs:
  Android SDK:
    API Levels:
      - "34"
      - "35"
    Build Tools:
      - 34.0.0
      - 34.0.0
      - 34.0.0
      - 34.0.0
      - 35.0.0
      - 35.0.0
      - 35.0.0
      - 35.0.0
      - 35.0.0
      - 35.0.1
      - 36.0.0
    System Images:
      - android-34 | Google APIs Intel x86_64 Atom
      - android-34 | Google Play Intel x86_64 Atom
      - android-35 | Google Play Intel x86_64 Atom
      - android-35 | Pre-Release 16 KB Page Size Google Play Intel x86_64 Atom
      - android-36 | Google APIs Intel x86_64 Atom
      - android-36 | Google Play Intel x86_64 Atom
      - android-36 | Pre-Release 16 KB Page Size Google APIs Intel x86_64 Atom
    Android NDK: Not Found
  Windows SDK: Not Found
IDEs:
  Android Studio: AI-243.24978.46.2431.13363775
  Visual Studio: Not Found
Languages:
  Java:
    version: 17.0.10
    path: /c/Program Files/Java/jdk-17/bin/javac
  Ruby: Not Found
npmPackages:
  "@react-native-community/cli":
    installed: 18.0.0
    wanted: ^18.0.0
  react:
    installed: 19.0.0
    wanted: 19.0.0
  react-native:
    installed: 0.79.5
    wanted: 0.79.5
  react-native-windows: Not Found
npmGlobalPackages:
  "*react-native*": Not Found
Android:
  hermesEnabled: true
  newArchEnabled: false
iOS:
  hermesEnabled: Not found
  newArchEnabled: Not found

Stacktrace or Logs

The build was successful.

MANDATORY Reproducer

...

Screenshots and Videos

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    Needs: AttentionIssues where the author has responded to feedback.Needs: ReproThis issue could be improved with a clear list of steps to reproduce the issue.Platform: AndroidAndroid applications.Resolution: AnsweredWhen the issue is resolved with a simple answer

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions