chore: android studio agp assistant; 16kb pagesize fix (#1107)

* upgrade android agp

* update ndk and add manual linker for 16kb

* upgarde ndk
This commit is contained in:
Justin Hernandez
2025-09-20 16:04:59 -07:00
committed by GitHub
parent 1d9e87f9b8
commit f36050ef1d
12 changed files with 36 additions and 20 deletions

View File

@@ -4,7 +4,7 @@ env:
# Node version is read from .nvmrc during workflow execution
RUBY_VERSION: 3.2
JAVA_VERSION: 17
ANDROID_NDK_VERSION: 27.0.11718014
ANDROID_NDK_VERSION: 27.0.12077973
XCODE_VERSION: 16.4
# Path configuration
WORKSPACE: ${{ github.workspace }}

View File

@@ -5,7 +5,7 @@ env:
RUBY_VERSION: 3.2
JAVA_VERSION: 17
ANDROID_API_LEVEL: 35
ANDROID_NDK_VERSION: 27.0.11718014
ANDROID_NDK_VERSION: 27.0.12077973
XCODE_VERSION: 16.4
# Cache versioning - increment these to bust caches when needed

View File

@@ -4,7 +4,7 @@ env:
# Build environment versions
JAVA_VERSION: 17
ANDROID_API_LEVEL: 33
ANDROID_NDK_VERSION: 27.0.11718014
ANDROID_NDK_VERSION: 27.0.12077973
XCODE_VERSION: 16.4
# Cache versions
GH_CACHE_VERSION: v1 # Global cache version

View File

@@ -17,7 +17,7 @@
| Java | 17 | [Install Java](https://www.oracle.com/java/technologies/javase-jdk17-downloads.html) |
| Android Studio (Optional)\* | Latest | [Install Android Studio](https://developer.android.com/studio) |
| Android SDK | Latest | See instructions for Android below |
| Android NDK | 27.0.11718014 | See instructions for Android below |
| Android NDK | 27.0.12077973 | See instructions for Android below |
\* To facilitate the installation of the SDK and the NDK, and to pair with development devices with a conventient QR code, you can use Android Studio.
@@ -60,7 +60,7 @@ In Android Studio, go to **Tools** > **SDK Manager** in the menu
Under **SDK Platforms**, install the platform with the highest API number
Under **SDK Tools**, check the **Show Package Details** checkbox, expand **NDK (Side by side)**, select version **27.0.11718014** and install.
Under **SDK Tools**, check the **Show Package Details** checkbox, expand **NDK (Side by side)**, select version **27.0.12077973** and install.
#### Using sdkmanager via CLI
@@ -83,10 +83,10 @@ $ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager --install "platforms;android-N
Install the NDK
```bash
$ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager --install "ndk;27.0.11718014"
$ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager --install "ndk;27.0.12077973"
```
Define the environment variable `ANDROID_NDK_VERSION` to `27.0.11718014` and `ANDROID_NDK` to `$ANDROID_HOME/ndk/27.0.11718014`
Define the environment variable `ANDROID_NDK_VERSION` to `27.0.12077973` and `ANDROID_NDK` to `$ANDROID_HOME/ndk/27.0.12077973`
Install Platform Tools, needed for the `adb` tool

View File

@@ -109,6 +109,14 @@ android {
buildToolsVersion rootProject.ext.buildToolsVersion
compileSdkVersion rootProject.ext.compileSdkVersion
compileOptions {
sourceCompatibility JavaVersion.VERSION_17
targetCompatibility JavaVersion.VERSION_17
}
kotlinOptions {
jvmTarget = '17'
}
namespace "com.proofofpassportapp"
// Build optimizations
@@ -128,6 +136,7 @@ android {
cmake {
cppFlags += "-fexceptions -frtti -std=c++11"
arguments += "-DANDROID_STL=c++_shared"
arguments += "-Wl,-z,max-page-size=16384"
}
ndk {
if (System.env.E2E_BUILD == "true") {
@@ -172,13 +181,13 @@ android {
}
packagingOptions {
exclude 'META-INF/LICENSE'
exclude 'META-INF/NOTICE'
exclude 'META-INF/versions/9/OSGI-INF/MANIFEST.MF'
pickFirst '**/libc++_shared.so'
jniLibs {
// Use modern packaging so AGP can 16 KB-align uncompressed .so files
useLegacyPackaging false
pickFirsts += ['**/libc++_shared.so']
}
resources {
excludes += ['META-INF/LICENSE', 'META-INF/NOTICE', 'META-INF/versions/9/OSGI-INF/MANIFEST.MF']
}
}
}
@@ -222,3 +231,9 @@ dependencies {
implementation "com.google.android.play:app-update:2.1.0"
}
java {
toolchain {
languageVersion = JavaLanguageVersion.of(17)
}
}

View File

@@ -18,7 +18,7 @@
android:icon="@mipmap/ic_launcher"
android:roundIcon="@mipmap/ic_launcher"
android:extractNativeLibs="false"
tools:replace="android:icon, android:roundIcon, android:name, android:extractNativeLibs"
tools:replace="android:icon, android:roundIcon, android:name, android:extractNativeLibs"
android:theme="@style/AppTheme"
android:supportsRtl="true"
android:usesCleartextTraffic="true"

View File

@@ -7,7 +7,7 @@ buildscript {
compileSdkVersion = 35
targetSdkVersion = 35
// Updated NDK to support 16k page size devices
ndkVersion = "27.1.12297006"
ndkVersion = "27.0.12077973"
kotlinVersion = "1.9.24"
firebaseMessagingVersion = "23.4.0"
firebaseBomVersion = "32.7.3"
@@ -20,7 +20,7 @@ buildscript {
}
}
dependencies {
classpath("com.android.tools.build:gradle:8.6.0")
classpath('com.android.tools.build:gradle:8.11.2')
classpath("com.facebook.react:react-native-gradle-plugin")
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion"
classpath 'com.google.gms:google-services:4.4.0'

View File

@@ -1,7 +1,7 @@
#Mon Feb 03 16:12:34 CET 2025
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.12-all.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-all.zip
networkTimeout=600000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME

View File

@@ -4,9 +4,10 @@ apply plugin: 'kotlin-android'
android {
namespace "io.tradle.nfc"
// Use NDK that supports 16k page size
ndkVersion = "27.1.12297006"
ndkVersion = "27.0.12077973"
compileSdkVersion 33
defaultConfig {
minSdkVersion 21
targetSdkVersion 33
versionCode 1
versionName "1.0"

View File

@@ -116,7 +116,7 @@ NODE_VERSION: 18
RUBY_VERSION: 3.2
JAVA_VERSION: 17
ANDROID_API_LEVEL: 35
ANDROID_NDK_VERSION: 27.0.11718014
ANDROID_NDK_VERSION: 27.0.12077973
```
## 🏷️ Git Tags & Releases
@@ -214,4 +214,4 @@ Before certificates expire:
---
For local development and manual release processes, see [`app/README.md`](../app/README.md)
For local development and manual release processes, see [`app/README.md`](../app/README.md)

View File

@@ -4,7 +4,7 @@ buildscript {
minSdkVersion = 23
compileSdkVersion = 35
targetSdkVersion = 35
ndkVersion = "27.0.11718014"
ndkVersion = "27.0.12077973"
kotlinVersion = "1.9.24"
}
repositories {

View File

@@ -4,7 +4,7 @@ buildscript {
minSdkVersion = 24
compileSdkVersion = 36
targetSdkVersion = 36
ndkVersion = "27.1.12297006"
ndkVersion = "27.0.12077973"
kotlinVersion = "2.1.20"
}
repositories {