android - 为什么我的终端看不到正在运行的 android 模拟器?
问题描述
我正在尝试在 Android 模拟器中运行我们的 react 本机应用程序,在yarn android
模拟器启动但应用程序没有启动后,几秒钟后我收到以下错误:
yarn run v1.22.10
$ react-native run-android
info Running jetifier to migrate libraries to AndroidX. You can disable it using "--no-jetifier" flag.
Jetifier found 1755 file(s) to forward-jetify. Using 8 workers...
info Starting JS server...
info Launching emulator...
error Failed to launch emulator. Reason: Could not start emulator within 30 seconds..
warn Please launch an emulator manually or connect a device. Otherwise app may fail to launch.
info Installing the app...
error Failed to install the app. Make sure you have the Android development environment set up: https://reactnative.dev/docs/environment-setup. Run CLI with --verbose flag for more details.
Error: spawn ./gradlew EACCES
at Process.ChildProcess._handle.onexit (node:internal/child_process:282:19)
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
该项目在 XCode (ios) 中完美运行,也在我同事的笔记本电脑(带有 Windows)中运行。
我使用的是 Macbook Air m1,macOS 11.3.1,SDK 平台:Android S,Android Studio 4.2.2,yarn 版本 v1.22.10,节点 v15.12.0,
解决方案
首先,确保您的Android 环境设置正确。
验证运行
echo $ANDROID_HOME
echo $PATH
并确保两者都具有您的 Android SDK 的正确路径。
如果不正确,您必须设置您的Android 环境
export ANDROID_HOME=$HOME/Library/Android/sdk
export PATH=$PATH:$ANDROID_HOME/emulator
export PATH=$PATH:$ANDROID_HOME/tools
export PATH=$PATH:$ANDROID_HOME/tools/bin
export PATH=$PATH:$ANDROID_HOME/platform-tools
参考react-native-official-setup-guide
除此之外,我看到的主要问题与Macbook Air M1有关,我遇到了类似的问题,M1不支持VT-X。
为确保这一点,您的Macbook Air M1支持VT-X打开Android Studio
然后AVD Manager
.
示例(我的 Macbook)(在 PURPLE 框中标记,不支持 VT-X)
解决方案:从android-emulator-apple-silicon-preview 下载新的模拟器
这应该使开发人员能够通过 ARM64 硬件虚拟化测试/运行 ARM64 应用程序。
推荐阅读
- python-3.x - 如何将数据框列与另一个数据框进行比较并创建列
- php - SMTP 错误无法验证并且 SMTP 错误无法连接到服务器 (0)
- android-studio - 不必要的无状态小部件重建(颤振/飞镖) - 可能与 StreamBuilder 相关?
- unix - 有人可以解释我下面的代码吗?尤其是 ((pid=fork())==0) 如何真正起作用
- javascript - GSAP - reverse() 不返回动画
- mocking - Jest Mock IntersectionObserver
- docker - 从 Docker GitHub Action 将二进制文件添加到 PATH 以供以后的工作流程步骤使用
- javascript - 如何通过状态传递数组项
- elasticsearch - 从聚合结果中求和 doc_count - 错误“buckets_path 不存在用于聚合
- ios - iOS Game Center GKScore 上下文,如何编码信息?