我刚刚使用以下命令创建了一个 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 模拟器中打开,但它崩溃了。
经过几个步骤后我成功地完成了这项工作。我不确定这些是否都是必要的,我不确定这是否包括我所做的一切,因为我在让它工作之前尝试了很多事情,但希望这至少有帮助。
app.json
文件中。
{
"expo": {
"android": {
"permissions": [
"android.permission.DETECT_SCREEN_CAPTURE"
]
}
}
}
yarn expo upgrade
sudo xcode-select --switch /Applications/Xcode.app
PATH
变量中(即:更新您的 ~/.bashrc
或 ~/.zshrc
文件)。yarn expo prebuild
yarn android