【发布时间】:2018-07-02 03:47:35
【问题描述】:
我正在尝试在 Ubuntu 上使用 GenyMotion 和 Expo 建立一个 React Native 项目。但是,当我单击 Expo 中的“设备”按钮将应用程序打包到模拟器上时,我在 Expo 控制台中收到以下错误:
我最初尝试通过带有内置 Android 模拟器的 Android Studio 使用 React Native,所以我认为问题可能是我的计算机有多个 ADB 版本(当我从终端运行 $ adb --start-server 时,它会运行 Android Studio二进制,而不是 GenyMotion 之一)。所以我:
- 删除了我能找到的所有与 Android Studio 相关的内容,包括位于
Android/Sdk/和现在$ adb --start-server的 SDK - 跑
$ sudo apt-get remove adb android-tools-adb -
将 GenyMotion 中 Android SDK 的文件路径设置为我的 GenyMotion Android SDK。但是我猜和默认设置一样,所以不知道是否需要这样做?
从我的
.bashrc文件中删除了所有与Android Studio 相关的路径变量,包括$ANDROID_HOME。 (我是否应该将$ANDROID_HOME设置为指向 GenyMotion Android SDK?
完成上述操作后,$ ps -aux | grep 5037 输出以下内容:
即使在退出 GenyMotion 和 Expo 之后,看起来仍然有一个分叉的 ADB 守护程序在运行。如果我 cd 到我的 GenyMotion SDK 并运行 $ ./adb kill-server(在退出 GM 和 Expo 之后)该过程不会再出现在 ps 的输出中。然而,有趣的是,如果我运行$ ./adb start-server,我会得到:
但我不知道如何更新 ADB 的 GenyMotion 版本。这似乎也表明存在不同的 ADB 服务器和客户端程序。它是否正确?我只与 SDK 文件夹中的 adb 二进制文件进行过交互。
更新:我尝试再次从终端启动 ADB,但无法重新创建冲突版本错误。服务器现在完美启动。
我也遇到了隧道无法在 Expo 中工作的问题,因此我已将主机更改为 localhost。它有效,但我不确定此更改的确切含义是什么:
显然,我对 Android 开发非常陌生,尤其是 GenyMotion/Expo。但我认为我的故障排除非常彻底。我还能尝试什么?
【问题讨论】:
-
你有解决这个队友的办法吗?
-
@DeepakSingh 是的,我现在已经用我最终得到它为我工作的内容回答了我的帖子。希望对您有所帮助。
标签: linux ubuntu react-native genymotion expo