问题描述
我打印react-native run-android
并获得以下输出:
FAILURE: Build failed with an exception.
What went wrong: Execution failed for task ‘:app:installDebug’.
com.android.builder.testing.api.DeviceException: Timeout getting device list.
Try: Run with –stacktrace option to get the stack trace. Run with –info or –debug option to get more log output.
BUILD FAILED
Total time: 1 mins 11.385 secs 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
我有genymotion模拟器运行。我已经定义了android home和path
export ANDROID_HOME=/home/jonstark/Documents/android/
export PATH=$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools
在sdk管理器中,我已经下载了所有必需的包。我该怎么办?
最佳解决办法
@Gaurang解决的问题是 ADB 的一个问题。构建失败的原因是ADB超时查询可用设备。
以下步骤为我解决了这个问题……
-
在Genymotion中,转到设置> ADB (标签)
-
选择广播选项“使用自定义Android SDK工具”,然后添加Android SDK的路径
-
重新启动Genymotion(可能不是完全必要的,但我做了,但它有效)
-
如果上述步骤不起作用,请尝试重新启动计算机,因为评论者已声明这对他们有效。 [8月10日补充]
我发现这是因为我意识到我的adb服务器没有启动。在这篇SOF文章(Adb won’t start)之后,我将目录更改为我的{ANDROID_SDK_FOLDER}/tools
并运行adb kill-server
然后仅运行adb start-server
以接收错误adb server version (32) doesn't match this client (36)
。在此搜索引导我阅读以下文章,从而得出解决方案。希望它可以帮助别人:)
参考:http://nmp90.com/2016/04/android-adb-server-version-32-doesnt-match-client-genymotion/
次佳解决办法
首先检查您使用的是哪个adb。
$ which adb
如果你这样:
/home/wakematta/Android/Sdk/platform-tools/adb
如果你这样:
/usr/bin/adb
你有 ADB 的特权。您需要运行此命令来删除不必要的adb:
$ sudo apt-get autoremove android-tools-adb android-tools-fastboot