It's my first time using expo for mobile development. I am trying to fetch the API from the JSON-Server but there is always the network request failed error. I have seen many posts on this issue but none of which worked for me.
What I have done:
Change to LAN connection on Expo. Start the json-server and set the host as my IPv4 address, worked on web, not on my android mobile. Also fetch http://192.xxx:3000 using the IP instead of localhost.
Change to 10.0.0.2 which should work for android emulator, but since I am using physical device. It does not work for me as well.
Change to 0.0.0.0. Does not work on both web and mobile (the endpoint is not working in the first place).
I have no ideas what else I can do now so I would like to ask if anyone knows what is happening here?
For the last 24 hours I have been trying to get my expo client to build JavaScript on my device. I have been using expo for some weeks now. And thou it may be difficult to get it running I some how manage to use it for some hours. Usually I can easily connect using tunnel. Recently I was able to 'trick it' to work without internet. But for the last 24 hours I can't get to work using any of the options available... I have scout the Internet for solutions and tried them with no success .
I keep getting type error java.net sockettimeoutexception network timeout error .....1000ms I have had to reset a lot on my system disabled all firewalls. Pause antivirus , reset react native packager hostname, clear cache for both expo and npm etc..
Lastly I tried removing and downloading the expo client app . But the app fails to download. Tried other apps and they work OK..
Finally got it to install after rebooting several times
When trying to run exp start --tunnel in a react-native project, I often see the warning:
22:15:31 [exp] Your URL is: exp://192.168.200.83:19000
....
22:15:31 [exp] Switched to a LAN URL because the tunnel appears to be down. Only devices in the same network can access the app. Restart with exp start --tunnel to try reconnecting.
This is a problem since none of my devices or the AVD can connect to this URL to download the project.
The problem does not seem to related to any firewall settings as it does not occur every time (just very consistently). When the error does not happen, I get a URL that I can work with that looks like:
22:44:38 [exp] Your URL is: exp://en-ux3.myexpousername.myapp.exp.direct:80
Is there something that can be done about this to get it to stop switching? What causes this switching exactly? Is there some way to get devices to be able to use this URL instead (I have an android device connected to same wifi, but seems to be unable to download the project from the LAN URL)?
** Totally new to react-native and expo, so if I am missing evidence of any common debugging steps for this kind of problem, please let me know what they may be in the comments so I can update the question.
UPDATE:
A similar question to this is addressed in the expo forums: https://forums.expo.io/t/switched-to-a-lan-url-because-the-tunnel-appears-to-be-down-only-devices-in-the-same-network-can-access-the-app-you-can-restart-the-project-to-try-reconnecting/4483.
I was having the message
Switched to a LAN URL because the tunnel appears to be down. Only devices in the same network can access the app. You can restart the project to try reconnecting.
And I've solved it closing Visual Studio (then pressing the Restart button from Expo XDE)
I created my project in react native by CLI:
_npm install -g create-react-native-app
_create-react-native-app AwesomeProject
_cd AwesomeProject
_npm start
Then I installed expo in my Android phone, and scanned a QR code on my computer screen.
However, my phone can't connect to project, and I don't know why. It just loads and fails. This is error message:
Could not load exp:// 192.168.56.1:19000. Network response timed out.
This is view error:
"Uncaught Error: java,not.SocketTimeoutException: faild to connect to/192.168.56.1 (port 19000) after 10000 ms.
I'm trying to fix it, but still can't get it working. My phone and my laptop are on the same network. What can I do now?
I had the same problem but solved by running expo start --tunnel
Select LOCAL instead of LAN.
I kicked myself when I fixed this.
I had the same issue, turns out my firewall was blocking my connection to the development server port (for me it was 19000). Solved it by disabling firewall.
Choose Tunnel Instead of LAN or Local in connection tab. This solved the issue for me.
Keep a look on this issue for the answer:
https://github.com/react-community/create-react-native-app/issues/60
Make sure that your device and computer are one same LAN/Wifi. It will work.
Also use LAN option.
check open port using
ufw status verbose
And if you don't see the port You are working on
for example 19000 => expo
try this
ufw allow 19000
I've had a similar problem on iOS - the project showed up in the Expo app but didn't want to connect.
Here's what I did:
Connect your PC to your device through USB cable
Download the newest xde from: https://github.com/expo/xde/releases
Install XDE, create a new project from the gui (do NOT use your old project from create-react-app, as it may also show up in XDE) and click the newly created (in XDE) project under "My Projects".
Now your project should show up in the Expo app on your phone. If it doesn't try sending yourself the link to your app over email (to your own inbox, and open the link on your phone), mine looks like this: exp://5c-gp9.[accountname].my-new-project.exp.direct:80
I had this problem when my phone was connected via wifi and my destop was connected via LAN. I changed the connection mode in the browser window to tunnel, reloaded the expo app and was able to connect to my application. This was on my iOS device.
I got this issue on Win 10 with android and solved by the adding a firewall rule for my device (device IP as remote). I was using ESET NOD antivirus and it was block the device from accessing node.exe
for local testing e.g comnputer , simulator
expo start
for Real mobile device
expo start --tunnel
I'm on windows 10.
My network was set to public, but it needed to be private - so that it could safely expose devices like printers and in this case the Expo connection.
I went in my Wifi setting and clicked on Private:
If you are using windows 10 do the following. It worked for me
1. Check if your phone and pc are sharing the same router/hotspot/wifi connection. better still you can connect your pc to your phone hotspot.
2. Configure the network you are using as private. you can do so using this link https://www.digitalcitizen.life/how-set-your-networks-location-private-or-public-windows-10/
3. Off your windows defender and any other antivirus. The windows and other antivirus defender acts as a firewall and prevents expo client from working.
It will work I assure you
I was having the same issue, the solution is easy just make a Firewall rule that allows connection from your mobile device to your PC. open port number 19000 and in the IP put your phone IP address then allow the connection TCP/UDP in both directions, and everything will be OK.
Usually, you can edit the Firewall rules through your antivirus installed on your PC.
Careful don't disable your firewall, it will hurt you a lot.
This problem is due to the sdk version of the project is not compatible with the expo go ,so go to app.json of your project and edit to the latest version of sdk
I am trying to connect to Googlefit but i am getting a strange error code as below
E/GooglePlayServicesUtil﹕ Unexpected error code 5005
Does anybody have any idea about this.Thanks In advance
I solved the error with the help of the answer in this post:
https://stackoverflow.com/a/28391583/2977169
#Sumoanand:
I also faced similar problem.
This issue occurs if app is not registered properly in google developer console.
I think you have registered app on Google developer Console using production keystore certificate fingerprint(SHA1) where as you are testing it on app which has debug keystore.
Perform following steps:
Create one more client Id using debug keystore certificate fingerprint(SHA1).
Uninstall existing app.
Install app & connect to Google fit.
Check under google fit app & make sure that your app is listed as a connected app (... > Settings > Connected apps > Connected apps & devices).
Now run the above code & it will work !!!
I had this error and the consent screen had been filled in correctly. The only way I could get around this was to delete the project and re-create it.
I changed my device date time to past time before connect to Google Fit and I got error 5005.
After changed to current time, it works :)