29 lines
1.3 KiB
JavaScript
29 lines
1.3 KiB
JavaScript
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);
|
|
} |