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

Expo EAS构建报错求助:expo-camera类型不匹配问题

解决EAS构建expo-camera时的Kotlin类型不匹配错误

这个错误是expo-camera库内部的Kotlin代码存在可空类型与非空类型不匹配的问题,并非你的业务代码导致。以下是具体修复方案:

  • 升级expo-camera到最新版本
    官方大概率会在后续版本修复这类类型错误,这是最直接的解决方式。执行命令更新依赖:

    npx expo install expo-camera@latest
    

    更新完成后重新执行EAS构建。

  • 同步Expo SDK与依赖版本
    如果升级expo-camera后问题仍存在,检查你的Expo SDK版本是否与expo-camera兼容。执行命令升级整个项目的SDK及依赖到最新兼容版本:

    npx expo upgrade
    

    按照提示完成升级后再尝试构建。

  • 使用patch-package临时修复(不推荐长期使用)
    若暂时无法升级依赖,可通过patch-package修改库的内部代码来修复类型错误:

    1. 安装patch-package工具:
      npm install patch-package --save-dev
      
    2. 找到node_modules/expo-camera/android/src/main/java/expo/modules/camera/tasks/ResolveTakenPicture.kt文件的第146行,将可空的String?类型转换为非空String。例如:
      // 安全处理空值的写法
      val targetPath: String = someNullableString ?: ""
      // 或强制非空(注意:若实际值为空会抛出空指针异常,谨慎使用)
      val targetPath: String = someNullableString!!
      
    3. 生成补丁文件:
      npx patch-package expo-camera
      
    4. 重新执行EAS构建,补丁会自动应用到构建流程中。

你的业务代码(CameraView组件调用、takePicture函数)本身没有问题,已经正确处理了uri为空的情况,无需修改。

内容的提问来源于stack exchange,提问作者Vinicius Bretzke Müller

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 02:47:06