android - 使用直接在 Windows 中运行的模拟器在 WSL 中运行 React Native

标签 android android-studio react-native windows-subsystem-for-linux

我有一段时间没有进行 Android 开发,所以我对现代 Android 开发的了解参差不齐。

我正在尝试学习 React Native。我使用 WSL 作为我的主要开发环境。由于在 Linux/WSL 中设置 Android 模拟器可能会很痛苦,因此我想直接在 Windows 上运行模拟器。但是,我更希望能够在 WSL 中运行 react-native run-android

我如何设置 React Native 才能在 WSL 中运行 react-native run-android 并在 Windows 上的 Android 模拟器中运行该应用程序?

我的 ANDROID_HOME 变量应该设置正确,但我对 Android 了解不够,无法知道这是否在做任何事情:

export ANDROID_HOME=/mnt/c/Users/Leo/AppData/Local/Android/sdk
export PATH=${PATH}:${ANDROID_HOME}/tools
export PATH=${PATH}:${ANDROID_HOME}/platform-tools

最佳答案

可以设置它,使模拟器在 Windows 中运行,同时在 WSL 中运行 react-native run-android。与@pscl 的方式相比,这样做的好处是这种方式支持自动链接。以下是您需要执行的操作才能使其正常运行。

window

Windows 端唯一需要的是安装 Android Studio并设置模拟器/虚拟设备。这非常简单,所以我不会向您介绍。

Linux 的 Windows 子系统

设置这方面的东西还有很多,所以请多多包涵。 (我的 WSL 是 Ubuntu 18.04,这在其他版本上未经测试。)

  1. 下载并解压缩 Android 命令行工具。 (目前可在 Android Studio 下载页面找到,向下滚动至“仅限命令行工具”并选择 Linux 下载选项。)
  2. 查看解压后的文件夹,将名为tools 的目录移动到~/Android/Sdk/tools。 (如果 ~/Android/Sdk 目录不存在,则创建它们。)
  3. 下载并解压缩 JDK 8。(我建议从 AdoptOpenJDK 下载。另外,请确保安装 OpenJDK 8,否则 sdkmanager 将无法工作,我们稍后将使用它。)
  4. 将解压后的文件夹移动到/opt/jdk8u222-b10。 (实际上你可以把它放在任何你想要的地方,只要确保 JAVA_HOME 环境变量指向这个解压缩的文件夹。)
  5. 在您的~/.bashrc 文件中设置以下环境变量。 (您的路径可能不同!)
export ANDROID_HOME=/home/your-name/Android/Sdk
export JAVA_HOME=/opt/jdk8u222-b10
export PATH=$PATH:$ANDROID_HOME/platform-tools
export PATH=$PATH:$ANDROID_HOME/tools/bin
  1. 重新启动您的 bash 终端并执行命令 sdkmanager "platform-tools" 以下载最新的平台工具。 (adb 工具来自这里。)

react native

现在一切都已设置好,是时候开始玩了!

  1. 在 Windows 中启动模拟器。
  2. 在 WSL 中打开您的项目目录并运行 react-native start。 (保持此终端打开)。
  3. 在另一个 WSL 终端中打开您的项目目录并运行 react-native run-android。 (第一次运行此程序时,React Native 将根据您的虚拟设备下载一些其他 SDK。您可以通过运行 sdkmanager --list 查看所有已安装的 SDK。有关详细信息,请参阅 docs for sdkmanager .)

在设备上运行

这是关于如何将应用安装到物理设备的快速说明。这里的技巧是确保您的两个 adb 可执行文件都在同一版本上。 (他们应该是因为我们通过 sdkmanager 安装了它。)

C:\Users\your-name\AppData\Local\Android\Sdk\platform-tools\adb.exe version
/home/your-name/Android/Sdk/platform-tools/adb version

一旦确认它们是同一版本,请确保从 Windows 可执行文件启动 adb 服务器(运行 adb.exe kill-server && adb.exe start-server) .然后您可以通过在 WSL 中运行 adb devices 来测试它是否有效,您应该会看到您的设备已插入。

关于android - 使用直接在 Windows 中运行的模拟器在 WSL 中运行 React Native,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42614347/

相关文章:

java - 如何将 Android Activity 转换为界面?

android - 数字不出现在 ADT 编辑器的 XML 文件中

android-studio - 定义单表达式函数时,如何始终将长表达式放在下一行?

android - 如何优化从内部存储加载图像到 gridview

android - 识别在 Android 中点击的图像区域?

android - 如何禁用 fragment 中的抽屉并返回正确的 fragment

android - 滚动时的Recycler View 和卡片创建多个副本

javascript - 如何调用对象的辅助函数?

android - 配置项目 ':@volst_react-native-tuya' 时出现问题

reactjs - react native : Can't fix FlatList keys warning