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

Expo环境下react-native-document-scanner-plugin未链接问题求助

解决Expo项目使用react-native-document-scanner-plugin的报错问题

问题根源

react-native-document-scanner-plugin是需要原生链接的第三方库,而你当前使用的是Expo托管工作流(Managed Workflow):

  • 托管模式下Expo会帮你维护iOS/Android原生项目,不会暴露Podfile和原生目录,因此执行pod install会提示找不到文件
  • 托管工作流不支持手动添加需要原生链接的模块,所以插件会触发未链接的报错

方案一:转为Expo裸工作流(Bare Workflow)

如果必须使用该插件,只能将项目转为裸工作流(不可逆操作),步骤如下:

  1. 更新Expo CLI和项目依赖:
    expo upgrade
    
  2. 执行eject转为裸工作流:
    expo eject
    
    执行后项目会生成ios、android原生目录,以及iOS端的Podfile
  3. 进入iOS目录安装依赖:
    cd ios && pod install
    
  4. 按照插件官网要求配置原生权限(比如iOS的相机权限、Android的存储/相机权限)
  5. 重新运行项目:
    # iOS
    npx react-native run-ios
    # Android
    npx react-native run-android
    

方案二:使用Expo官方兼容的文档扫描库

不想转裸工作流的话,推荐使用Expo官方支持的expo-document-scanner,无需原生链接,直接在托管工作流中使用:

  1. 安装依赖:
    expo install expo-document-scanner
    
  2. 基础使用示例:
    import * as DocumentScanner from 'expo-document-scanner';
    import { Button, View } from 'react-native';
    
    export default function App() {
      const handleScan = async () => {
        try {
          const scanResult = await DocumentScanner.scanDocumentAsync({
            quality: 0.9,
            allowsEditing: true,
          });
          // 处理扫描后的文档URI
          console.log('扫描结果:', scanResult.uri);
        } catch (err) {
          console.error('扫描失败:', err);
        }
      };
    
      return (
        <View style={{ flex: 1, justifyContent: 'center', alignItems: 'center' }}>
          <Button title="扫描文档" onPress={handleScan} />
        </View>
      );
    }
    
  3. 直接用Expo命令启动项目即可:
    expo start
    

内容的提问来源于stack exchange,提问作者Soundednote

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 21:30:59