在android模拟器上运行react-native

时间:2016-07-25 21:23:31

标签: android-emulator react-native adb genymotion 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$ 

然后我试过了:

  1. react-native start
  2. react-native run-android
  3. 同样的结果。

    然后我试过了:

    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

    4. 同样的结果。

      我只尝试了adb reverse tcp:8081 tcp:8081,并说error: closed

      当我尝试在android-sdk模拟器上运行app时,上面会出现相同的错误但没有error: closed

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

13 个答案:

答案 0 :(得分:35)

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

  1. 请安装所需的SDK,如图所示
  2. Configure Required SDKs Configure Required SDKs

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

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

答案 1 :(得分:12)

在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引起的,因此需要编辑自己的配置,而不是官方文档https://reactnative.dev/docs/environment-setup

中所述的默认$ HOME / .bash_profile。

答案 2 :(得分:7)

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

android avd

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

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

brew install android-platform-tools

答案 3 :(得分:2)

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

workflow.xml

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

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

我不知道反应原生是否存在某种令人困惑的东西但是这样做了。

答案 4 :(得分:1)

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

答案 5 :(得分:1)

在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”

答案 6 :(得分:1)

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

npx @react-native-community/cli doctor

答案 7 :(得分:1)

尝试

  • 酿造酒桶安装android-platform-tools
  • adb反向tcp:9090 tcp:9090
  • 运行应用

答案 8 :(得分:1)

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

答案 9 :(得分:0)

在我的情况下,这是由于android / gradlew文件没有执行权限而发生的。一旦获得批准,效果很好

答案 10 :(得分:0)

我有一个类似的问题。重新启动系统后,它已修复。

答案 11 :(得分:0)

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

答案 12 :(得分:0)

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

<块引用>

brew install android-platform-tools

可能会有所帮助。