Skip to content

Conversation

@jguix
Copy link
Contributor

@jguix jguix commented May 29, 2025

… devices

Android will force 16 KB page sizes support starting November 1st.

https://developer.android.com/guide/practices/page-sizes

Starting November 1st, 2025, all new apps and updates to existing apps submitted to Google Play and targeting Android 15+ devices must support 16 KB page sizes.

This can already put an application in trouble should it be targeted to Android 15+, when we want to push the APK to the Play Store. The emulators (those that are 16KB ready) are already showing a popup stating that the app isn't 16KB compatible.

What

Changes

Tested on

Related issues

… devices

Android will force 16 KB page sizes support starting November 1st.

https://developer.android.com/guide/practices/page-sizes

> Starting November 1st, 2025, all new apps and updates to existing apps submitted to Google Play and targeting Android 15+ devices must support 16 KB page sizes.

This can already put an application in trouble should it be targeted to Android 15+, when we want to push the APK to the Play Store. The emulators (those that are 16KB ready) are already showing a popup stating that the app isn't 16KB compatible.
@vercel
Copy link

vercel bot commented May 29, 2025

The latest updates on your projects. Learn more about Vercel for Git ↗︎

Name Status Preview Comments Updated (UTC)
react-native-vision-camera ✅ Ready (Inspect) Visit Preview 💬 Add feedback May 29, 2025 10:28am

@mrousavy
Copy link
Owner

mrousavy commented Jun 2, 2025

nice!

@mrousavy mrousavy merged commit 17d9f09 into mrousavy:main Jun 5, 2025
5 checks passed
@mrousavy
Copy link
Owner

mrousavy commented Jun 5, 2025

my dumb ass forgot this was open and I created a new PR in the meantime #3546

@walterholohan
Copy link

@jguix can we do a new release on NPM so that we can use this as I think it will unblock #3548 which is causing all Plat Store releases to crash

@jenskuhrjorgensen
Copy link

jenskuhrjorgensen commented Jun 30, 2025

Hi @mrousavy and @jguix

Could it be that this issue also exists in react-native-worklets-core meaning the react-native-vision-camera doesn't work with worklets enabled on 16 KB page size enabled devices? I don't see any issues/PRs/releases mentioning 16 KB page size support in https://github.com/margelo/react-native-worklets-core.

I'm getting this runtime crash when running on a 16 KB page size Android 35 emulator:

2025-06-30 21:01:01.296  5307-5386  VisionCameraProxy       <REDACTED>    E  Failed to load VisionCamera C++ library!
                                                                                                    java.lang.UnsatisfiedLinkError: dlopen failed: empty/missing DT_HASH/DT_GNU_HASH in "/data/app/~~70Ztc2qYMuAakhTbZDXiRA==/<REDACTED>-sdItMDq_bfw-CvAsvku6_g==/base.apk!/lib/arm64-v8a/librnworklets.so" (new hash type from the future?)
                                                                                                    	at java.lang.Runtime.loadLibrary0(Runtime.java:1081)
                                                                                                    	at java.lang.Runtime.loadLibrary0(Runtime.java:1003)
                                                                                                    	at java.lang.System.loadLibrary(System.java:1765)
                                                                                                    	at com.mrousavy.camera.react.CameraViewModule.<clinit>(CameraViewModule.kt:48)
                                                                                                    	at com.mrousavy.camera.react.CameraPackage.createNativeModules(CameraPackage.kt:11)
                                                                                                    	at com.facebook.react.ReactPackageHelper.getNativeModuleIterator(ReactPackageHelper.kt:32)
                                                                                                    	at com.facebook.react.NativeModuleRegistryBuilder.processPackage(NativeModuleRegistryBuilder.kt:39)
                                                                                                    	at com.facebook.react.ReactInstanceManager.processPackage(ReactInstanceManager.java:1567)
                                                                                                    	at com.facebook.react.ReactInstanceManager.processPackages(ReactInstanceManager.java:1538)
                                                                                                    	at com.facebook.react.ReactInstanceManager.createReactContext(ReactInstanceManager.java:1448)
                                                                                                    	at com.facebook.react.ReactInstanceManager.lambda$runCreateReactContextOnNewThread$2(ReactInstanceManager.java:1216)
                                                                                                    	at com.facebook.react.ReactInstanceManager.$r8$lambda$PrBhihCbbAFk4ZReAALGanVLCyc(Unknown Source:0)
                                                                                                    	at com.facebook.react.ReactInstanceManager$$ExternalSyntheticLambda1.run(D8$$SyntheticClass:0)
                                                                                                    	at java.lang.Thread.run(Thread.java:1012)
2025-06-30 21:01:01.304  5307-5386  AndroidRuntime          <REDACTED>    E  FATAL EXCEPTION: create_react_context
                                                                                                    Process: <REDACTED>, PID: 5307
                                                                                                    java.lang.UnsatisfiedLinkError: dlopen failed: empty/missing DT_HASH/DT_GNU_HASH in "/data/app/~~70Ztc2qYMuAakhTbZDXiRA==/<REDACTED>-sdItMDq_bfw-CvAsvku6_g==/base.apk!/lib/arm64-v8a/librnworklets.so" (new hash type from the future?)
                                                                                                    	at java.lang.Runtime.loadLibrary0(Runtime.java:1081)
                                                                                                    	at java.lang.Runtime.loadLibrary0(Runtime.java:1003)
                                                                                                    	at java.lang.System.loadLibrary(System.java:1765)
                                                                                                    	at com.mrousavy.camera.react.CameraViewModule.<clinit>(CameraViewModule.kt:48)
                                                                                                    	at com.mrousavy.camera.react.CameraPackage.createNativeModules(CameraPackage.kt:11)
                                                                                                    	at com.facebook.react.ReactPackageHelper.getNativeModuleIterator(ReactPackageHelper.kt:32)
                                                                                                    	at com.facebook.react.NativeModuleRegistryBuilder.processPackage(NativeModuleRegistryBuilder.kt:39)
                                                                                                    	at com.facebook.react.ReactInstanceManager.processPackage(ReactInstanceManager.java:1567)
                                                                                                    	at com.facebook.react.ReactInstanceManager.processPackages(ReactInstanceManager.java:1538)
                                                                                                    	at com.facebook.react.ReactInstanceManager.createReactContext(ReactInstanceManager.java:1448)
                                                                                                    	at com.facebook.react.ReactInstanceManager.lambda$runCreateReactContextOnNewThread$2(ReactInstanceManager.java:1216)
                                                                                                    	at com.facebook.react.ReactInstanceManager.$r8$lambda$PrBhihCbbAFk4ZReAALGanVLCyc(Unknown Source:0)
                                                                                                    	at com.facebook.react.ReactInstanceManager$$ExternalSyntheticLambda1.run(D8$$SyntheticClass:0)
                                                                                                    	at java.lang.Thread.run(Thread.java:1012)

Tested out with:
compileSdk=35
targetSdk=35
VisionCamera_enableFrameProcessors=true
VisionCamera_enableCodeScanner=true
"react-native": "0.79.4"
"react-native-vision-camera": "4.7.0"
Android image: Pre-Release 16 KB Page Size Google Play ARM 64 v8a System Image API 35.0

If I change VisionCamera_enableFrameProcessors to false the app launches.

Let me know if you think this could be a real issue and if I should report it at react-native-vision-camera or https://github.com/margelo/react-native-worklets-core.

Best regards
Jens

@mrousavy
Copy link
Owner

mrousavy commented Jul 1, 2025

I just created the PR for Worklets myself. margelo/react-native-worklets-core#249

zehra-tok pushed a commit to tos-analytics/react-native-vision-camera that referenced this pull request Oct 21, 2025
Update build.gradle, adding flexible page sizes flag to support 16 KB devices

Android will force 16 KB page sizes support starting November 1st.

https://developer.android.com/guide/practices/page-sizes

> Starting November 1st, 2025, all new apps and updates to existing apps submitted to Google Play and targeting Android 15+ devices must support 16 KB page sizes.

This can already put an application in trouble should it be targeted to Android 15+, when we want to push the APK to the Play Store. The emulators (those that are 16KB ready) are already showing a popup stating that the app isn't 16KB compatible.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants