So this is what I have done,(windows)
installed Expo XDE.
installed Android Studio
installed Genymotion
changed Genymotions settings to “Use custom Android SDK tools” (found successfully)
created a blank project on Expo XDE
device - Open on Android
And the log throws this:
"Couldn’t start project on Android: could not install smartsocket listener: cannot bind to 127.0.0.1:5037: Only one usage of each socket address (protocol/network address/port) is normally permitted. (10048)
could not read ok from ADB Server
failed to start daemon *
error: cannot connect to daemon"
running adb devices
returns
List of devices attached
192.168.206.101:5555 device
Just to get this right, you set the exp path like described here in Step 2, right? This fixxed it for me, got the exact same error as you and had the device listed correctly under adb devices.
I think the problem was although Genymotion had the right Android SDK, Expo didn’t, because I didn’t set the path. Please try this and share your result.
I am also stuck with the same issue. I have tried all possible steps including the one which @marianoweber has suggessted. But still stuck at the same place!
Yes. I have added. This is the issue which i am facing. Earlier i thought it is because of the absense of vt-x, which is not available in my system. I was unable to add android devices above 5.0. I am only able to add devices below 4.2.2. My genymotion virtual serverbox issue is sorted out. But with this, i am getting stuck in the last step.
Hey guys. Hopefully I can help out. This is pretty straight forward once you know what to do.
20,000 foot view… Expo needs to know where to run the Android adb tool and it can only know via the operating systems Environment Variables.
There is NO NEED to install the anything from Google. Set up correctly everything works with only Expo and Genymotion.
First, figure out where Genymotion installs it’s version of the Android adb.exe tool.
For me, on Windows 10 64-bit, it’s C:\Program Files\Genymobile\Genymotion\tools
Is there a guide for how to set the env variable in Ubuntu? I install exp & ran ‘exp path’ command & printed the path. However, my Expo XDE is none the wiser. Where do I have to store this env variable?
I was also stuck on a mac, so here is a step-by-step guide that worked for me. It might be a bit too detailed but I wanted to make it as easy to follow as possible. I was missing some key points and spent way too much time figuring out what was wrong in the original documentation, so this might be helpful to you as well:
Option 1: Use Android Studio’s tools
‘Install Android Studio.’ - search google for it, download and install it. also, install genymotion
‘Go to Configure → SDK Manager.’ - open Android Studio and do this
‘In SDK Manager, make sure you are in Appearance & Behaviour → System Settings → Android SDK. Your SDK and tools are in the box that says Android SDK Location. Remember this location!’ - check if you have all the tools installed as indicated in the latest expo genymotion documentation
‘If you are on macOS or Linux, add the Android SDK location to your PATH using ~/.bash_profile or ~/.bash_rc.’ - open finder and go to your root directory (it is on the left side with a small house icon) and press ‘cmd+shift+.’ that will bring up the hidden files. look for .bash_profile or .bash_rc file and open with text editor. now, type in a new line: export ANDROID_HOME=/Users/username/Library/Android/sdk
and substitute your ‘username’ to your username. you can double check if this is the right path on the top of the window in ‘Android SDK Location’ box that you opened in the previous step
‘On macOS, you will also need to add platform-tools to your ~/.bash_profile or ~/.bash_rc., by adding a line like export PATH=/Users/myuser/Library/Android/sdk/platform-tools:$PATH’ - in the same file from previous step, add the following line: export PATH=/Users/username/Library/Android/sdk/platform-tools:$PATH
and again write in your correct username and save the file
‘Make sure that you can run adb from your terminal.’ - this was the part where I got stuck, the easiest way is to enter the following commands in your terminal (line by line):
‘Open Genymotion and navigate to Settings → ADB. Select “Use custom Android SDK tools” and update with your Android SDK location:’ - just use the same location as you have seen in the Android SDK manager
‘Start Genymotion’
Step 2: Set your path in XDE
‘Run npm install -g exp to install exp globally.’ just run npm install -g exp in the terminal
‘Then run exp path. This will save your PATH environment variable so that XDE knows where to find your Android tools.’ - just run exp path in the terminal
Now start Expo XDE and after opening the project choose ‘open on Android’. It should work fine now. If this guide helped for you please share which part was problematic for you, maybe the Expo guys will add extra info in the documentation to the most problematic parts. Thx!
I have a project in XDE that loads in the Expo app on my phone, I have Genymotion set up and configured to look for the Android tools in the official SDK, and exp path includes Genymotion/tools/. When I open a new emulator, adb devices reports correctly and XDE identifies an Android device, but when I try to open the project in the emulator, XDE reports Opening on Android device and nothing happens.
I resolved this problem by following steps:
1: like @gollyjer said: Add adb path to let expo know where adb is : Expo needs to know where to run the Android adb tool and it can only know via the operating systems Environment Variables
2: if you already installed sdk before, please re-check and remove it from PATH environment. for my case: E:\Android\sdk\platform-tools (I added when I install Androistudio )