我正在尝试让我的 react-native 项目在 Mac 操作系统上的 android 模拟器上运行。它在我的窗户上运行良好。
在我的 Mac 上,我转到终端并输入 react-native run-android
并收到错误消息:
$ react-native run-android
Scanning 616 folders for symlinks in /Users/John/Documents/myreactnativeproject/node_modules (17ms)
Starting JS server...
Building and installing the app on the device (cd android && ./gradlew installDebug)...
Could not install the app on the device, read the error above for details.
Make sure you have an Android emulator running or a device connected and have
set up your Android development environment:
https://facebook.github.io/react-native/docs/android-setup.html
我输入 adb devices
我看到了
List of devices attached
emulator-5554 unauthorized
我进入我的安卓模拟器的设置,我去设置内部版本号点击它几次以启用开发者选项。在开发人员选项中,我启用了 USB 调试,禁用了通过 USB 验证应用程序,并将其他所有内容保留为默认值。我关闭了我的 android studio 和模拟器,重新启动它。但是,仍然存在上述相同的问题。
我究竟做错了什么?
编辑
我刚刚将我的安卓手机连接到我的 Mac。当我运行 adb devices
时,我看到了这个结果
List of devices attached
YLEDU16B18004313 device
但是当我运行 react-native run-android
时,我得到与上面相同的错误。所以也许我的 react-native 设置有问题?
编辑 2
通过添加这些额外步骤,我能够将应用程序部署到我的 android 手机
chmod 755 android/gradlew
出于某种原因,当我在终端中输入
echo $ANDROID_HOME
时,我得到了结果/Users/John/Library/Android/sdk
。但是,如果我将echo $ANDROID_HOME
行添加到我的android/gradlew
文件中,它不会产生任何响应。当我运行react-native run-android
命令时,编译器抱怨 ANDROID_HOME 未定义。所以我必须再次输入export ANDROID_HOME=/Users/John/Library/Android/sdk
,然后运行react-native run-android
命令工作并将其部署到我的手机。
但是,我的模拟器仍然无法正常工作。我得到的新错误消息是 Skipping device 'emulator-5554' (emulator-5554): Device is UNAUTHORIZED,
。
但至少我有一个临时的解决方案,并且可以用我的手机进行调试。
编辑 3
通过进入我的 Android 虚拟设备并删除虚拟设备,我摆脱了 emulator 5554 unauthorized
错误。然后我重新安装了它。现在我的 adb devices 显示 emulator 5554 device
。而且我无法将应用程序部署到我的模拟器。
原文由 John 发布,翻译遵循 CC BY-SA 4.0 许可协议
通过遵循问题中的编辑 2,我让我的 mac 系统将 react-native 构建部署到我的物理手机。
通过遵循问题中的编辑 3,我让我的 mac 系统将 react-native 构建部署到我的模拟器。
我认为这个问题通常是由于将我的项目从 Windows 开发区移动到 Mac 开发区引起的。然后可能会发生不同问题的组合,导致每种情况下的构建都失败。