React Native新架构Android端TurboModule模块解析报错求助
React Native新架构TurboModule模块找不到的解决办法
报错核心原因
从报错信息看,Metro在解析rtn-calculator/js/NativeCalculator.js时找不到对应文件——你的NativeCalculator.ts实际放在RTNCalculator根目录,但Metro被引导去js子目录下查找,路径不匹配;同时自定义TurboModule包的package.json缺少正确的入口配置,导致模块解析规则出错。
具体解决方案
1. 修正文件路径或包配置
两种方式二选一即可:
- 方式一:调整文件位置
把NativeCalculator.ts移动到RTNCalculator/js目录下,让文件路径完全匹配Metro的查找路径。 - 方式二:修改package.json配置
在RTNCalculator/package.json中,明确指定模块入口:
这里的{ "name": "rtn-calculator", "main": "./NativeCalculator.ts", "exports": { "./js/NativeCalculator": "./NativeCalculator.ts" } }exports字段是为了兼容Metro对rtn-calculator/js/NativeCalculator路径的查找请求,直接映射到实际文件位置。
2. 确保Metro能识别自定义包
检查项目根目录的metro.config.js,确保自定义包目录被纳入监听范围:
const { getDefaultConfig, mergeConfig } = require('@react-native/metro-config'); const path = require('path'); const customConfig = { watchFolders: [path.resolve(__dirname, './RTNCalculator')] }; module.exports = mergeConfig(getDefaultConfig(__dirname), customConfig);
3. 清理缓存并重建
- 清除Metro缓存:
npx react-native start --reset-cache - 重新编译Android:
cd android && ./gradlew clean && ./gradlew assembleDebug
验证
重新启动React Native项目,调用NativeCalculator的add方法,确认报错消失,功能正常。
内容的提问来源于stack exchange,提问作者BraveEvidence
相关产品推荐
相关产品推荐

