From 51c4831dd3748cb6839c81c82941bdbcf46e1496 Mon Sep 17 00:00:00 2001 From: Gustavo Cortez Date: Tue, 9 Jun 2026 18:00:23 -0300 Subject: [PATCH] Fix: Check ABI filters before build for old Android devices --- scripts/check-abi-filters.js | 35 +++++++++++++++++++++++++++++++++++ scripts/postinstall.sh | 1 + 2 files changed, 36 insertions(+) create mode 100644 scripts/check-abi-filters.js diff --git a/scripts/check-abi-filters.js b/scripts/check-abi-filters.js new file mode 100644 index 0000000000..5c6a236a22 --- /dev/null +++ b/scripts/check-abi-filters.js @@ -0,0 +1,35 @@ +// scripts/check-abi-filters.js +const fs = require('fs'); +const path = require('path'); + +const gradlePath = path.join(process.cwd(), 'android', 'app', 'build.gradle'); +const lines = fs.readFileSync(gradlePath, 'utf8').split('\n'); + +const checks = [ + { + description: 'reactNativeArchitectures() default return', + match: line => + line.includes('return value ? value.split') && + line.includes('armeabi-v7a'), + }, + { + description: 'ndk { abiFilters }', + match: line => line.includes('abiFilters') && line.includes('armeabi-v7a'), + }, + { + description: 'versionCodes map', + match: line => + line.includes('def versionCodes') && line.includes('armeabi-v7a'), + }, +]; + +const failed = checks.filter(check => !lines.some(check.match)); + +if (failed.length > 0) { + console.error('\nandroid/app/build.gradle is missing armeabi-v7a in:'); + failed.forEach(c => console.error(` - ${c.description}`)); + console.error('\n See PR #2078 for reference\n'); + process.exit(1); +} + +console.log('ABI filters check passed (3/3)'); diff --git a/scripts/postinstall.sh b/scripts/postinstall.sh index 68d873062d..06f9436b54 100755 --- a/scripts/postinstall.sh +++ b/scripts/postinstall.sh @@ -5,3 +5,4 @@ node ./scripts/mute-require-cycle-warnings.js node ./scripts/multi-modal-patch.js node ./scripts/git-commit-hash.js node ./scripts/generate-dkls-vendor.js +node ./scripts/check-abi-filters.js