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

安装expo-camera后出现Permissions module is null错误如何解决?

问题根因与解决步骤

你遇到的错误本质是expo-camera依赖的expo内部权限模块没有完成初始化,和系统层面的相机权限是否申请成功无关。你之前用原生PermissionsAndroid申请权限的操作不生效,是因为expo-camera只会读取自身权限模块的状态,不会调用系统原生权限接口的返回结果。

修复步骤

  • 补全expo核心依赖,执行命令:
    npx expo install expo-modules-core
    如果你的expo SDK版本低于46,额外执行:
    npx expo install expo-permissions
  • 如果你使用的是原生React Native(非Expo托管)项目,必须完成Expo Modules的全量自动链接配置:
    1. 打开android/settings.gradle,确认已经添加expo自动链接的引入代码
    2. 打开android/app/build.gradle,确认顶部已经添加apply from: new File(["node", "--print", "require.resolve('expo/package.json')"].execute(null, rootDir).text.trim(), "../scripts/autolinking.gradle")
    3. 打开MainApplication.java,确认getPackages()方法已经注册了Expo模块包,没有手动移除自动生成的expo包引用
  • 替换你现有的权限申请代码,直接使用expo-camera自带的权限申请方法:
import { Camera } from 'expo-camera';

const [hasPermission, setHasPermission] = useState(null);

const requestCameraPermission = async () => {
  const { status } = await Camera.requestCameraPermissionsAsync();
  setHasPermission(status === 'granted');
};
  • 清理Android构建缓存后重新编译项目:
    cd android && ./gradlew clean && cd .. && npx react-native run-android

注意不要直接用热更新重载项目,必须全量重新编译才会生效。


内容的提问来源于stack exchange,提问作者rop lop fan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.09 00:09:04