const fs = require('fs'); const path = require('path'); const filePath = path.join(__dirname, '..', 'node_modules', 'react-native-ble-plx', 'android', 'src', 'main', 'java', 'com', 'bleplx', 'BlePlxModule.java'); console.log('正在修复 react-native-ble-plx 的 Android 崩溃问题...'); try { let content = fs.readFileSync(filePath, 'utf8'); // 替换所有的 safePromise.reject(null, errorConverter.toJs(error)) const originalPattern = 'safePromise.reject(null, errorConverter.toJs(error));'; const fixedPattern = 'safePromise.reject(error.errorCode.name(), errorConverter.toJs(error));'; const beforeCount = (content.match(/safePromise\.reject\(null, errorConverter\.toJs\(error\)\);/g) || []).length; content = content.replace(/safePromise\.reject\(null, errorConverter\.toJs\(error\)\);/g, fixedPattern); const afterCount = (content.match(/safePromise\.reject\(error\.errorCode\.name\(\), errorConverter\.toJs\(error\)\);/g) || []).length; fs.writeFileSync(filePath, content, 'utf8'); console.log(`✅ 成功修复 ${beforeCount} 个实例`); console.log(`✅ 验证:发现 ${afterCount} 个修复后的实例`); console.log('现在请运行: bunx patch-package react-native-ble-plx'); } catch (error) { console.error('❌ 修复失败:', error.message); process.exit(1); }