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

使用tabs@50模板的Expo项目运行npm run Android时崩溃报错

问题原因与解决方案

核心原因

报错中的java.lang.SecurityException: Permission Denial: registerScreenCaptureObserver requires android.permission.DETECT_SCREEN_CAPTURE是触发崩溃的根因:Expo SDK 50的tabs模板里,某个内置模块(如屏幕捕获相关模块)需要检测屏幕录制的权限,但默认配置未在AndroidManifest.xml中声明该权限,导致Native层抛出权限异常,进而阻断了JS层的组件注册流程,最终出现"main"未注册的连锁报错。

解决步骤

1. 添加缺失的权限声明

  • 先运行npx expo prebuild生成Android原生项目目录(如果尚未生成);
  • 打开android/app/src/main/AndroidManifest.xml,在<manifest>标签内新增权限:
    <uses-permission android:name="android.permission.DETECT_SCREEN_CAPTURE" />
    

2. 清理缓存并重启服务

  • 关闭当前运行的Metro服务器和安卓模拟器;
  • 执行命令清理缓存并重启开发服务:
    npx expo start --clear
    
  • 重新启动安卓模拟器,再运行npm run android。

3. 验证Expo版本兼容性

  • 检查本地Expo CLI版本是否与SDK 50匹配:
    npx expo --version
    
  • 如果版本不匹配,安装对应版本的Expo CLI:
    npm install -g expo-cli@^5.0.0
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 01:42:14