Expo-Router 模板在运行 npm run Android 时抛出错误

问题描述 投票:0回答:1

我刚刚使用以下命令创建了一个 Expo 项目:

npx create-expo-app@latest --template tabs@50

我已经安装了所需的一切(我想?):Android Studio、Xcode 等。 运行 npm start android 时,模拟器会打开,然后崩溃并出现以下错误:

 ERROR  Error: Exception in HostObject::get for prop 'NativeUnimoduleProxy': java.lang.SecurityException: Permission Denial: registerScreenCaptureObserver from pid=2093, uid=10182 requires android.permission.DETECT_SCREEN_CAPTURE, js engine: hermes
 ERROR  Error: Exception in HostObject::get for prop 'NativeUnimoduleProxy': java.lang.SecurityException: Permission Denial: registerScreenCaptureObserver from pid=2093, uid=10182 requires android.permission.DETECT_SCREEN_CAPTURE, js engine: hermes
 ERROR  Invariant Violation: "main" has not been registered. This can happen if:
* Metro (the local dev server) is run from the wrong folder. Check if Metro is running, stop it and restart it in the current project.
* A module failed to load due to an error and `AppRegistry.registerComponent` wasn't called., js engine: hermes

我没有修改项目中的任何内容。这个错误是什么意思?

我尝试使用模板(来自 expo 文档)创建项目。 预计该应用程序会在 Android 模拟器中打开,但它崩溃了。

xcode react-native expo android-emulator
1个回答
0
投票

经过几个步骤后我成功地完成了这项工作。我不确定这些是否都是必要的,我不确定这是否包括我所做的一切,因为我在让它工作之前尝试了很多事情,但希望这至少有帮助。

  1. 将缺少的权限添加到项目:
    app.json
    文件中。
    {
      "expo": {
        "android": {
          "permissions": [
            "android.permission.DETECT_SCREEN_CAPTURE"
          ]
        }
      }
    }
    
  2. 更新正在使用的expo版本:
    yarn expo upgrade
  3. 确保 xcode 设置正确,以 防止 glog 出现问题
    sudo xcode-select --switch /Applications/Xcode.app
  4. 如果尚未安装 JDK,请安装它。我选择使用 OpenJDK,可以在here下载。如果您使用的是配备 Apple M1 芯片的 macOS,则可以按照这些说明进行操作。确保这些二进制文件的路径已添加到您的
    PATH
    变量中(即:更新您的
    ~/.bashrc
    ~/.zshrc
    文件)。
  5. 尝试预构建:
    yarn expo prebuild
  6. 在 Android VM 中运行您的项目:
    yarn android
© www.soinside.com 2019 - 2024. All rights reserved.