运行 android 模拟器上的 react-native

Run react-native on android emulator

我尝试 运行 在我的 mac 上的 genymotion android 模拟器上反应本机应用程序。 当我写 react-native run-android 它得到

Running /usr/local/opt/android-sdk/platform-tools/adb reverse tcp:8081 tcp:8081
error: closed
Could not run adb reverse: Command failed: /usr/local/opt/android-sdk/platform-tools/adb reverse tcp:8081 tcp:8081
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
MacBook-Pro-MacBook:ART-CarefulPeople macbook$ 

然后我试过了:

  1. react-native start
  2. react-native run-android

同样的结果。

然后我试过了:

  1. react-native bundle --entry-file index.android.js --platform android --bundle-output android/app/src/main/assets/index.android.bundle

  2. curl "http://localhost:8081/index.android.bundle?platform=android" -o "android/app/src/main/assets/index.android.bundle"

  3. react-native run-android

同样的结果。

我只试过 adb reverse tcp:8081 tcp:8081,它说 error: closed

当我尝试在 android-sdk 模拟器上运行 运行 应用程序时,出现与上面相同的错误,但没有 error: closed.

我可以从 android 工作室 运行 这个应用程序,它可以在 genymotion 上运行。 请告诉我,我应该如何在 android 模拟器上 运行 我的应用程序?

遇到了类似的问题。我更新了我的 Genymotion 和我的 android SDK's/libraries/dependencies,一切似乎都有效。为了更新我的 SDK,我使用了 android sdk manager {ANDROID_SDK_FOLDER}/tools/android sdk

我遇到了类似的问题,在花了很多时间和大量搜索这个问题之后,唯一对我有用的技巧是:

  1. 请如图所示安装所需的SDK

Configure Required SDKs

  1. 如果您已经安装了它,那么您必须更新以下SDK:
    • Android SDK Tool(更新到最新版本)
    • Android SDK Platform-tools(更新到最新版本)
    • Android SDK Build-tools(更新到最新版本)
    • Android Support RepositoryExtra 文件夹下(更新到最新版本)
  2. 您必须至少安装与 Android SDK Build-tools & Android SDK Platform-tools 版本相同的 Android API 版本,如上图 Configure Required SDKs 所示。

Note: Local Maven repository for Support Libraries which is listed as the SDK requirement in the official docs of React-native is now named as Android Support Repository in the SDK Manager .

碰巧我有一个打包程序的实例 运行 一个旧项目(我 运行 react-native start 像往常一样)。我使用的是 Ubuntu 14.04。所以我所做的是停止该实例并转到我的项目文件夹并在两个不同的控制台选项卡中我分别 运行 这两个命令:

npm start #here I used to run react-native start
react-native run-android

npm start 在我的 package.json 中定义为:

"start": "node_modules/react-native/packager/packager.sh"

我不知道 react-native 是否有一些令人困惑的东西,但这确实有效。

我每次都在 android studio 或在物理设备上遇到类似的问题 运行ning 模拟器。相反,您可以从命令行快速 运行 android 模拟器,

android avd

模拟器 运行ning 后,您可以使用 adb devices 检查模拟器是否出现。 然后你可以简单地使用 react-native run-android 至 运行 模拟器上的应用程序。

确保您已安装平台工具以便能够使用 adb。或者你可以使用

brew install android-platform-tools

在 Windows 10 和 Android Studio 中,您可以进入 Android Studio 中的“文件”->“设置”,然后转到“外观和行为”->“系统设置”->“Android SDK”。 在选项卡“SDK 工具”中处于活动状态:

  • "Android SDK Build-Tools .."
  • Android 模拟器
  • "Android SDK Plattform-Tools"
  • "Android SDK 工具"

如果全部安装,那么您可以在 Android Studio 中使用“工具”->“Android”->“AVD 管理器”启动模拟器。 如果模拟器 运行 你可以尝试“react-native run-android”

在我的例子中,发生这种情况是因为 android/gradlew 文件没有执行权限。一旦授予,这很好

在 macO 上,我设法通过添加来解决这个问题:

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

到 ~/.zsh_profile 文件。

然后输入您的终端

source $HOME/.zsh_profile

这个问题是由使用 iTerm2 引起的 shell 所以需要编辑它自己的配置而不是默认的 $HOME/.bash_profile 如官方文档所述 https://reactnative.dev/docs/environment-setup

您也可以尝试使用“医生”命令。它会解决大多数情况。

npx @react-native-community/cli doctor

尝试

  • brew cask 安装android-platform-tools
  • adb 反向 tcp:9090 tcp:9090
  • 运行 应用

您可能永远 运行 Android SDK。 所以你可能只需要更新它。 如果您打开 Android Studio 软件,它可能会让您知道并要求为您更新。否则参考以下link:Update Android SDK

如果没有安装模拟器然后尝试这个命令,(如果安装了自制软件)

brew install android-platform-tools

可能会有帮助。

React Native(在 Mac OS Big SUR 上)

我被困在这里了。但是更新 Android studio 的环境设置就成功了。

nano ~/.zshrc

并粘贴

export ANDROID_SDK_ROOT=$HOME/Library/Android/sdk
export ANDROID_HOME=$HOME/Library/Android/sdk
export PATH=$PATH:$ANDROID_HOME/emulator:$PATH
export PATH=$PATH:$ANDROID_HOME/tools:$PATH
export PATH=$PATH:$ANDROID_HOME/tools/bin:$PATH
export PATH=$PATH:$ANDROID_HOME/platform-tools:$PATH
export JAVA_HOME=$(/usr/libexec/java_home)

control + o保存 然后 enter 然后 control + x 退出

然后做 source ~/.zshrc 编译

杀死 运行nig 终端和 运行 npx react-native run-android

就我而言,android/gradlew 文件存在问题。我认为当我们将代码从 Windows 移动到 Mac OS.

时会发生这种情况

参考:-

我能够通过 运行 执行以下命令来清理 android/gradlew 文件 -

第 1 步。在 android 文件夹 cmd 运行

chmod +x gradlew

第 2 步。之后 运行

./gradlew clean

第 3 步。接下来在项目的根目录中,运行

react-native run-android

这应该会开始构建应用程序并在模拟器中启动它(如果其他一切都很好的话)。