我尝试在我的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$
然后我试过了:
react-native start
react-native run-android
同样的结果。
然后我试过了:
react-native bundle --entry-file index.android.js --platform android --bundle-output android/app/src/main/assets/index.android.bundle
curl "http://localhost:8081/index.android.bundle?platform=android" -o "android/app/src/main/assets/index.android.bundle"
react-native run-android
同样的结果。
我只尝试了adb reverse tcp:8081 tcp:8081
,并说error: closed
当我尝试在android-sdk模拟器上运行app时,上面会出现相同的错误但没有error: closed
。
从Android工作室我可以运行这个应用程序,它适用于genymotion。 请告诉我,我应该怎么做才能在Android模拟器上运行我的应用程序?
答案 0 :(得分:35)
我遇到了类似的问题,在花了这么多时间和大量搜索这个问题后,唯一的伎俩对我有用:
Android SDK Tool
(将其更新至最新版本)Android SDK Platform-tools
(将其更新至最新版本)Android SDK Build-tools
(将其更新至最新版本)Android Support Repository
位于Extra
文件夹下(将其更新为最新版本)Android API
&安装相同版本Android SDK Build-tools
。 Android SDK Platform-tools
版本,如上图Configure Required SDKs
图所示。注意:支持库的本地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 Studio中的模拟器 - > “Android” - > “AVD经理”。 如果模拟器运行,您可以尝试“react-native run-android”
答案 6 :(得分:1)
您也可以尝试使用“医生”命令。它将解决大多数情况。
npx @react-native-community/cli doctor
答案 7 :(得分:1)
尝试
答案 8 :(得分:1)
我被困在这里。但是更新 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
可能会有所帮助。