在android模拟器上运行react-native

alb*_*ozd 27 adb android-emulator genymotion react-native react-native-android

我尝试在我的mac上运行genymotion android模拟器上的react-native app.当我写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$ 
Run Code Online (Sandbox Code Playgroud)

然后我试过了:

  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模拟器上运行app时,它会得到相同的错误,但没有error: closed.

从android studio我可以运行这个应用程序,它适用于genymotion.请告诉我,我应该怎么做才能在Android模拟器上运行我的应用程序?

Riz*_*mal 35

我有类似的问题,花了这么多时间和大量搜索这个问题后,唯一的伎俩对我有用:

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

Configure Required SDKs 配置所需的SDK

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

注意:支持库的本地Maven存储库(在React-native的官方文档中列为SDK要求)现在在SDK Manager中命名为Android支持存储库.

  • 它可能是由于您的Android操作系统版本...'adb reverse tcp:8081 tcp:8081`仅适用于操作系统版本> = 5的设备 (2认同)

小智 28

在 macOS 上,我设法通过添加以下内容来解决此问题:

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
Run Code Online (Sandbox Code Playgroud)

到 ~/.zsh_profile 文件。

然后输入到您的终端

source $HOME/.zsh_profile
Run Code Online (Sandbox Code Playgroud)

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


Elt*_*ain 7

我每次或者在物理设备上都有类似的问题从android studio运行模拟器.相反,你可以从命令行快速运行android模拟器,

android avd
Run Code Online (Sandbox Code Playgroud)

模拟器运行后,您可以检查adb devices模拟器是否显示.然后,您可以简单地使用 react-native run-android在模拟器上运行应用程序.

确保安装了平台工具才能使用adb.或者你可以使用

brew install android-platform-tools
Run Code Online (Sandbox Code Playgroud)

  • 不要brew安装命令行工具,不推荐使用它们.按照说明使用Android Studio https://facebook.github.io/react-native/docs/getting-started.html#1-install-android-studio (3认同)
  • ```android avd``` 已弃用。使用``android list avd``。 (3认同)

Aay*_*rya 6

React Native(在 Mac OS Big SUR 上)

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

nano ~/.zshrc
Run Code Online (Sandbox Code Playgroud)

并粘贴

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)
Run Code Online (Sandbox Code Playgroud)

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

然后 source ~/.zshrc编译

杀死 runnig 终端并运行 npx react-native run-android


Cih*_*kar 5

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

npx @react-native-community/cli doctor
Run Code Online (Sandbox Code Playgroud)