What happened?
hello there. i am upgrading my react native app to the latest versions for the 16kb page size compliance.
i created a fresh project (using "react-native init" command) and i am testing each of the dependencies i have one by one. so, i have a project in which the only dependency is async-storage, and i am having a problem. when i generate the apk and check the compliance status in Android Studio APK Analyzer, it tells me the app is not compliant. the reason seems to be the " libsqlitejni.so". and the warning message is "RELRO is not a suffix and its end is not 16 KB aligned".
as i said, async-storage is the only dependency i added. and when i delete it, and recompile, the new apk passes the test.
all components are up to date and in the latest version. i have gradle 9.3.1, sdk 36, ndk 29+.
i read past issues and the readme file. i can't see if i am missing something, and i dont see anyone else having the same issue.
any help will be greatly appreciated.
here is my packages.json:
{
"name": "rnfcompass",
"version": "0.0.1",
"private": true,
"scripts": {
"android": "react-native run-android",
"ios": "react-native run-ios",
"lint": "eslint .",
"start": "react-native start",
"test": "jest"
},
"dependencies": {
"react": "19.2.3",
"react-native": "0.85.2",
"@react-native/new-app-screen": "0.85.2",
"react-native-safe-area-context": "^5.5.2",
"@react-native-async-storage/async-storage": "^3.0.2"
},
"devDependencies": {
"@babel/core": "^7.25.2",
"@babel/preset-env": "^7.25.3",
"@babel/runtime": "^7.25.0",
"@react-native-community/cli": "20.1.0",
"@react-native-community/cli-platform-android": "20.1.0",
"@react-native-community/cli-platform-ios": "20.1.0",
"@react-native/babel-preset": "0.85.2",
"@react-native/eslint-config": "0.85.2",
"@react-native/jest-preset": "0.85.2",
"@react-native/metro-config": "0.85.2",
"@react-native/typescript-config": "0.85.2",
"@types/jest": "^29.5.13",
"@types/react": "^19.2.0",
"@types/react-test-renderer": "^19.1.0",
"eslint": "^8.19.0",
"jest": "^29.6.3",
"prettier": "2.8.8",
"react-test-renderer": "19.2.3",
"typescript": "^5.8.3"
},
"engines": {
"node": ">= 22.11.0"
}
}
here is the android/build.gradle file:
buildscript {
ext {
buildToolsVersion = "36.0.0"
minSdkVersion = 24
compileSdkVersion = 36
targetSdkVersion = 36
ndkVersion = "29.0.14206865"
kotlinVersion = "2.1.20"
}
repositories {
google()
mavenCentral()
}
dependencies {
classpath("com.android.tools.build:gradle")
classpath("com.facebook.react:react-native-gradle-plugin")
classpath("org.jetbrains.kotlin:kotlin-gradle-plugin")
}
}
allprojects {
repositories {
google()
mavenCentral()
maven {
url = uri(project(":react-native-async-storage_async-storage").file("local_repo"))
//uri("../node_modules/@react-native-async-storage/async-storage/android/local_repo")
}
}
}
apply plugin: "com.facebook.react.rootproject"
here is the APK analyzer result:
Version
3.0.2
What platforms are you seeing this issue on?
System Information
OS: Windows 11 10.0.26200
CPU: (8) x64 Intel(R) Core(TM) i7-8565U CPU @ 1.80GHz
Memory: 534.07 MB / 7.88 GB
Binaries:
Node:
version: 24.15.0
path: C:\Program Files\nodejs\node.EXE
Yarn: Not Found
npm:
version: 11.12.1
path: C:\Program Files\nodejs\npm.CMD
Watchman: Not Found
SDKs:
Android SDK:
API Levels:
- "15"
- "16"
- "17"
- "18"
- "19"
- "20"
- "21"
- "22"
- "23"
- "24"
- "25"
- "26"
- "27"
- "28"
- "29"
- "30"
- "31"
- "32"
- "33"
- "34"
- "35"
- "36"
- "36"
Build Tools:
- 30.0.2
- 30.0.3
- 33.0.1
- 35.0.0
- 36.0.0
- 36.1.0
- 37.0.0
- 37.0.0
System Images:
- android-26 | Google Play Intel x86 Atom
- android-30 | Google Play Intel x86 Atom
- android-34 | Intel x86_64 Atom
Android NDK: Not Found
Windows SDK: Not Found
IDEs:
Android Studio: AI-253.32098.37.2534.15232325
Visual Studio: Not Found
Languages:
Java:
version: 17.0.18
path: C:\Program Files\Microsoft\jdk-17.0.18.8-hotspot\bin\javac.EXE
Ruby: Not Found
npmPackages:
"@react-native-community/cli":
installed: 20.1.0
wanted: 20.1.0
react:
installed: 19.2.3
wanted: 19.2.3
react-native:
installed: 0.85.2
wanted: 0.85.2
react-native-windows: Not Found
npmGlobalPackages:
"*react-native*": Not Found
Android:
hermesEnabled: true
newArchEnabled: true
iOS:
hermesEnabled: Not found
newArchEnabled: Not found
Steps to Reproduce
-
Create a new project with react-native init
-
add async storage to the package.json
-
modify android/build gradle as explained on async storage git page.
-
run "npm install"
-
run "gradlew clean"
-
run "gradlew assembleRelease"
-
check the APK in APK analyzer.
Result: 16kb alignment problem
-
delete async storage from package.json
-
delete node_modules folder
-
run "npm install"
-
run "gradlew clean"
-
run "gradlew assembleRelease"
-
check the APK in APK analyzer.
-
Result: 16kb alignment issue disappears
What happened?
hello there. i am upgrading my react native app to the latest versions for the 16kb page size compliance.
i created a fresh project (using "react-native init" command) and i am testing each of the dependencies i have one by one. so, i have a project in which the only dependency is async-storage, and i am having a problem. when i generate the apk and check the compliance status in Android Studio APK Analyzer, it tells me the app is not compliant. the reason seems to be the " libsqlitejni.so". and the warning message is "RELRO is not a suffix and its end is not 16 KB aligned".
as i said, async-storage is the only dependency i added. and when i delete it, and recompile, the new apk passes the test.
all components are up to date and in the latest version. i have gradle 9.3.1, sdk 36, ndk 29+.
i read past issues and the readme file. i can't see if i am missing something, and i dont see anyone else having the same issue.
any help will be greatly appreciated.
here is my packages.json:
here is the android/build.gradle file:
here is the APK analyzer result:
Version
3.0.2
What platforms are you seeing this issue on?
System Information
Steps to Reproduce
Create a new project with react-native init
add async storage to the package.json
modify android/build gradle as explained on async storage git page.
run "npm install"
run "gradlew clean"
run "gradlew assembleRelease"
check the APK in APK analyzer.
Result: 16kb alignment problem
delete async storage from package.json
delete node_modules folder
run "npm install"
run "gradlew clean"
run "gradlew assembleRelease"
check the APK in APK analyzer.
Result: 16kb alignment issue disappears