You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 15:23:19