使用 vs 代码对本机 docker 容器做出反应以发布到主机操作系统上的 android 模拟器
Posted
技术标签:
【中文标题】使用 vs 代码对本机 docker 容器做出反应以发布到主机操作系统上的 android 模拟器【英文标题】:react native docker container using vs code to publish to android emulator on host OS 【发布时间】:2021-02-01 07:06:15 【问题描述】:我正在尝试在 vs 代码上运行反应原生 docker 容器。我能够运行我的代码。但是,容器无法检测到在我的主机上运行的 android 模拟器。
I followed along in this tutorial course:
https://code.visualstudio.com/docs/remote/containers & https://github.com/microsoft/vscode-react-native
正在运行
npx react-native run-android 但是,我收到一条错误消息,指出我的模拟器没有运行。错误 安装应用程序失败。确保你有一个安卓模拟器 正在运行或连接的设备。使用 --verbose 标志运行 CLI 以获取更多信息 细节。错误:命令失败:./gradlew app:installDebug -PreactNativeDevServerPort=8081
我的 devcontainer.json:-
"name": "React Native Android Container",
// Sets the run context to one level up instead of the .devcontainer folder.
"context": "..",
// Update the 'dockerFile' property if you aren't using the standard 'Dockerfile' filename.
"dockerFile": "Dockerfile",
"runArgs": [
"--privileged", // give all capabilities to a container, in other words, the container can then do almost everything that the host can do
"--net",
"host", // forwarding all host machine ports
"-v",
"/dev/bus/usb:/dev/bus/usb" // mount connected USB devices to a container
],
"settings":
// This will ignore your local shell user setting for Linux since shells like zsh are typically
// not in base container images. You can also update this to an specific shell to ensure VS Code
// uses the right one for terminals and tasks. For example, /bin/bash (or /bin/ash for Alpine).
"terminal.integrated.shell.linux": null
,
// Add the IDs of extensions you want to be installed when the container is created in the array below.
"extensions": ["msjsdiag.vscode-react-native"]
runArgs“主机”应该转发所有端口。我想我需要反向的类似论点?
【问题讨论】:
在 Ubuntu 20.04 上运行它 您使用adb
连接吗?
我正在尝试连接到从 android studio 启动的 android 模拟器
我不确定 adb 是什么……现在正在研究
adb
是 Android Device Bridge,当你安装 Android Studio 时,你已经有了它。要检查 adb,请转到终端并运行 adb --version
。如果你有版本,那么你就有了。如果不是,你应该安装它,当你通过adb devices
命令看到你的模拟器时,然后使用yarn android
你可以在你的模拟器上安装你的应用程序。
【参考方案1】:
检查android/gradlew
的权限。可以使用以下命令检查权限:
stat -c "%a %n" android/gradlew
权限应为 755。如果不是,请将您的应用根文件夹中的权限更改为 755。
chmod 755 android/gradlew
然后运行react-native run-android
【讨论】:
是什么让你认为这是一个 gradlew 权限问题?以上是关于使用 vs 代码对本机 docker 容器做出反应以发布到主机操作系统上的 android 模拟器的主要内容,如果未能解决你的问题,请参考以下文章
使用 debugpy 和 vs 代码在 docker 容器中调试 python 导致超时/连接被拒绝
无法编译使用Google Services Analytics对本机项目做出反应