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

React Native应用无法在Android Studio模拟器运行,报错求助

解决React Native应用在Android模拟器启动失败的问题

问题现象

在Android Studio的Pixel模拟器上运行React Native应用时出现以下报错:

ERROR Error: Exception in HostObject::get for prop 'NativeUnimoduleProxy': java.lang.SecurityException: Permission Denial: registerScreenCaptureObserver from pid=9773, uid=10182 requires android.permission.DETECT_SCREEN_CAPTURE, js engine: hermes
ERROR Invariant Violation: "main" has not been registered. This can happen if:

  • Metro(本地开发服务器)在错误的文件夹中运行。检查Metro是否正在运行,停止后在当前项目中重启。
  • 某个模块因错误加载失败,且未调用AppRegistry.registerComponent,js engine: hermes

应用在外部移动设备上可正常运行。

解决方案

1. 添加缺失的权限

打开项目中的android/app/src/main/AndroidManifest.xml文件,在<manifest>标签内添加以下权限声明:

<uses-permission android:name="android.permission.DETECT_SCREEN_CAPTURE" />

这个权限是Android 12及以上系统检测屏幕录制所需的,模拟器通常使用较高版本的Android系统,因此需要手动添加。

2. 重置Metro缓存并重启服务

  • 停止当前正在运行的Metro服务(按下Ctrl+C)
  • 执行以下命令清除缓存并重启Metro:
    npx react-native start --reset-cache
    
  • 重新运行应用:
    npx react-native run-android
    

3. 清理Android项目构建缓存(可选)

如果上述步骤无效,尝试清理Android项目的构建缓存:

  • 通过Android Studio操作:点击顶部菜单栏的Build -> Clean Project,完成后再点击Rebuild Project
  • 或者使用命令行:
    cd android && ./gradlew clean && cd ..
    
    清理完成后重新运行应用即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 12:42:16