diff --git a/android/gradle.properties b/android/gradle.properties index ad7b8347..728d4e61 100644 --- a/android/gradle.properties +++ b/android/gradle.properties @@ -28,7 +28,9 @@ android.enableJetifier=true # Use this property to specify which architecture you want to build. # You can also override it from the CLI using # ./gradlew -PreactNativeArchitectures=x86_64 -# Mapbox Android SDK 9.x bundles an x86_64 libmapbox-gl.so that is not 16 KB page-size aligned. +# Keep release/default builds on ARM ABIs for 16 KB page-size safety. +# For emulator APKs, override per command, e.g.: +# ./gradlew assembleRelease -PreactNativeArchitectures=x86,x86_64 reactNativeArchitectures=armeabi-v7a,arm64-v8a android.defaults.buildfeatures.buildconfig=true diff --git a/package.json b/package.json index d0271b19..44c3bf5c 100644 --- a/package.json +++ b/package.json @@ -22,7 +22,8 @@ "android:sideload:install": "ADB=${ADB:-$(command -v adb || true)}; if [ -z \"$ADB\" ] || [ ! -x \"$ADB\" ]; then SDK_ADB=${ANDROID_HOME:+$ANDROID_HOME/platform-tools/adb}; if [ -n \"$SDK_ADB\" ] && [ -x \"$SDK_ADB\" ]; then ADB=$SDK_ADB; else ADB=$HOME/Android/platform-tools/adb; fi; fi; SERIALS=$(\"$ADB\" devices | awk '$2==\"device\"{print $1}'); COUNT=$(echo \"$SERIALS\" | sed '/^$/d' | wc -l | tr -d ' '); if [ \"$COUNT\" -eq 0 ]; then echo 'No Android device or emulator found. Connect one or set SERIAL=.'; exit 1; fi; if [ \"$COUNT\" -gt 1 ] && [ -z \"$SERIAL\" ]; then echo 'Multiple Android devices/emulators detected. Set SERIAL=.'; echo \"$SERIALS\"; exit 1; fi; TARGET=${SERIAL:-$(echo \"$SERIALS\" | head -n 1)}; \"$ADB\" -s \"$TARGET\" install -r android/app/build/outputs/apk/debug/$(ls android/app/build/outputs/apk/debug/*.apk | xargs basename)", "android:sideload": "yarn android:sideload:build && yarn android:sideload:install && yarn android:sideload:tunnel", "ios": "react-native run-ios", - "release:android": "cd android && ./gradlew assembleRelease", + "release:android": "cd android && ./gradlew assembleRelease -PreactNativeArchitectures=armeabi-v7a,arm64-v8a", + "release:android:x86": "cd android && ./gradlew assembleRelease -PreactNativeArchitectures=x86,x86_64", "release:ios": "react-native run-ios --configuration Release", "release:upstream": "git merge --squash --allow-unrelated-histories --strategy recursive -Xtheirs", "lint": "node_modules/.bin/eslint ./app/ --max-warnings=0",