63

我尝试在我的 mac 上的 genymotion android 模拟器上运行 react-native 应用程序。当我写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 studio 我可以运行这个应用程序,它适用于 genymotion。请告诉我,我应该怎么做才能在 android 模拟器上运行我的应用程序?

4

13 回答 13

56

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

  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-tools&Android SDK Platform-tools版本相同的版本Configure Required SDKs

注意:在 React-native 官方文档中列为 SDK 要求的 Support Libraries 本地 Maven 存储库现在在 SDK Manager 中命名为 Android Support Repository。

于 2016-08-10T10:16:51.737 回答
46

在 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

到 ~/.zsh_profile 文件。

然后输入到您的终端

source $HOME/.zsh_profile

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

于 2020-06-29T10:10:19.007 回答
20

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编译

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

于 2021-06-24T06:11:11.833 回答
12

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

android avd

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

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

brew install android-platform-tools
于 2016-11-21T07:32:28.527 回答
10

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

npx @react-native-community/cli doctor
于 2020-07-27T10:36:24.607 回答
4

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

  • “Android SDK 构建工具 ..”
  • “安卓模拟器”
  • 《Android SDK 平台-工具》
  • “Android SDK 工具”

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

于 2018-03-10T10:10:25.277 回答
4

我碰巧有一个打包程序的实例与一个旧项目一起运行(我像往常一样运行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 是否存在某种令人困惑的东西,但这确实起到了作用。

于 2016-09-17T04:03:23.923 回答
2

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

酿造安装安卓平台工具

可能会有所帮助。

于 2021-03-25T09:48:03.933 回答
2

有类似的问题。我更新了我的 Genymotion 和我的 android SDK/库/依赖项,似乎一切正常。为了更新我的 SDK,我使用了 android sdk manager{ANDROID_SDK_FOLDER}/tools/android sdk

于 2016-07-29T17:32:43.950 回答
1

尝试

  • brew cask install android-platform-tools
  • adb 反向 tcp:9090 tcp:9090
  • 运行应用程序
于 2020-08-12T14:13:50.473 回答
0

就我而言,这是因为 android/gradlew 文件没有执行权限。一旦获得批准,这工作正常

于 2019-04-29T03:08:41.850 回答
0

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

于 2021-01-27T07:05:22.190 回答
0

就我而言,android/gradlew 文件存在问题。我认为当我们将代码从 Windows 移动到 Mac OS 时会发生这种情况。

参考:- https://stackoverflow.com/a/62216646/4786087

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

步骤 1. 在 android 文件夹 cmd 上运行

chmod +x gradlew

步骤 2. 之后运行

./gradlew clean

步骤 3. 接下来在项目的根目录中,运行

react-native run-android

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

于 2021-09-22T08:50:54.990 回答