Expo托管项目中@infinitered/react-native-mlkit-face-detection模块未找到求助
解决Expo托管工作流中@infinitered/react-native-mlkit-face-detection模块未找到问题
针对你遇到的Error: Cannot find native module 'RNMLKitFaceDetection'错误,按以下步骤排查:
1. 重新构建自定义开发客户端
Expo托管工作流中,安装原生依赖后必须重新构建自定义开发客户端,仅重启Metro服务无效。执行对应平台的构建命令:
# Android开发构建 eas build --profile development --platform android # iOS开发构建 eas build --profile development --platform ios
构建完成后,安装新生成的客户端再测试。
2. 配置Expo插件声明
确保app.json或app.config.js中已添加该库的Expo插件配置,原生模块需要通过插件完成自动链接:
{ "expo": { "plugins": [ "@infinitered/react-native-mlkit-face-detection" ] } }
添加后重新执行构建步骤。
3. 清理缓存并重装依赖
缓存问题可能导致模块未正确识别,执行以下命令:
# 清理并重新安装依赖 npm clean-install # 清理Metro缓存并重启服务 npx expo start --clear
4. 验证版本兼容性
确认@infinitered/react-native-mlkit-face-detection@3.1.0与你的Expo 52(RN 0.76.7)版本兼容。该版本明确支持RN 0.70+,理论上适配,但如果构建日志有MLKit相关错误,可尝试降级或升级库版本测试。
5. 检查构建日志中的原生集成问题
若上述步骤无效,查看EAS构建的完整日志,搜索RNMLKitFaceDetection或MLKit关键词,确认是否存在原生依赖缺失、权限配置错误:
- iOS需确保相机权限声明已添加(可通过Expo配置自动生成):
{ "expo": { "ios": { "infoPlist": { "NSCameraUsageDescription": "需要相机权限进行人脸检测" } } } } - Android需确认相机权限已配置:
{ "expo": { "android": { "permissions": ["CAMERA"] } } }
额外代码提示
你的FaceDetectionComponent代码未导入View和Text组件,会导致后续渲染错误,补充导入:
import { View, Text } from "react-native"; import { useFacesInPhoto } from "@infinitered/react-native-mlkit-face-detection"; export default function FaceDetectionComponent() { // ... 原有代码 }
内容的提问来源于stack exchange,提问作者Aditya
相关产品推荐
相关产品推荐

