Skip to content

react-native-async-storage 16kb page size alignment failure problem due to libsqlitejni.so #1289

@nudiref

Description

@nudiref

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:

Image

Version

3.0.2

What platforms are you seeing this issue on?

  • Android
  • iOS
  • macOS
  • Windows
  • web

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingv3Related to version 3

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions