我正在尝试在Ubuntu上使用GenyMotion和Expo建立一个React Native项目。但是,当我在Expo中单击“设备”按钮将应用程序打包到模拟器上时,在Expo控制台中出现以下错误:
我最初尝试通过内置的Android仿真器通过Android Studio使用React Native,因此我认为问题可能出在我的计算机具有多个ADB版本(当我从终端运行$ adb --start-server
时,它将运行Android Studio二进制文件,而不是GenyMotion一种)。所以我:
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
$ ./adb kill-server
到GenyMotion SDK并运行ps
(退出GM和Expo之后),则该过程不再出现在$ ./adb start-server
的输出中。但是,有趣的是,如果我运行adb
,我会得到:
但是我不知道如何更新GenyMotion版本的ADB。这似乎也表明存在不同的ADB服务器程序和客户端程序。它是否正确?我只与SDK文件夹中的HttpInterceptor
二进制文件进行过交互。
更新:我尝试再次从终端启动ADB,但无法重新创建冲突的版本错误。服务器现在可以完美启动。
我也遇到了隧道无法在Expo上工作的麻烦,因此我将主机更改为localhost。它有效,但是我不确定此更改的含义是什么
很明显,我是Android开发的新手,尤其是GenyMotion / Expo。但是我认为我在故障排除方面已经非常彻底。我还能尝试什么?
答案 0 :(得分:0)
至少对于我来说,解决方案是我需要将export PATH="/home/darik/projects/android/genymotion/tools:$PATH"
添加到我的.bashrc
文件中。我猜测ADB服务器未确认的原因是Expo在我的路径env变量中找不到ADB服务器。
答案 1 :(得分:0)
对我来说,解决方案是我在系统上安装了多个adb。 而且我系统上的adb版本与android sdk平台工具上的adb版本不同。
我只是在PATH上添加了正确的文件夹C:\\ Ragnulf \ AppData \ Local \ Android \ Sdk \ platform-tools