我想测试/模拟新创建的默认 React Native 应用程序。
但是,在 Visual Studio Code 中从 Expo Terminal 打开 Android 虚拟设备 (AVD) 会引发 2 个未捕获错误:
ERROR 错误:HostObject::get for prop 中出现异常 'NativeUnimoduleProxy':java.lang.SecurityException:权限 拒绝:来自 pid=7315、uid=10197 的 registerScreenCaptureObserver 需要 android.permission.DETECT_SCREEN_CAPTURE
错误不变违规:“main”尚未注册。
我遵循了官方 React Native 文档的 Expo Go Quickstart 运行 npm 命令:
npx create-expo-app AwesomeProject
cd AwesomeProject
成功创建了一个新的 React Native 项目。
要测试/模拟默认的 App.js,请使用以下命令在 Visual Studio Code 终端中成功启动服务器
npx expo start
现在我启动 Android Studio 并打开虚拟设备管理器。我成功启动了新创建的 Pixel 7 设备。 AVD 打开没有问题,并按您的预期显示设备。
返回 Visual Studio Code 终端,我按 a 使用 Expo 打开 Android 虚拟设备模拟。
a
焦点自动切换到 AVD,甚至完成了“捆绑 100%”,但随后在 AVD 上显示 2 个未捕获错误:
以及 Visual Studio Code Expo Terminal
创建 Android 虚拟设备 (AVD) 时使用较旧的 Android API 版本。
仅当使用运行最新 Android API 版本的 AVD 时,才会发生此错误,即:
以及 API TiramisuPrivacySandbox 的 Android 虚拟设备工作得很好。 使用这些 API 版本,不会出现错误,只需在 Visual Studio Code 终端中按
按 a,即可自动正确地模拟 React Native 应用程序。