NativeScript / NativeScript/nativescript-cli

Android remote emulator lose connection using ANDROID_ADB_SERVER_ADDRESS

Open
#5,504 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

os: android
Dominant language
JavaScript
Stars
1.1k
Forks
204
Avg merge
1d 9h
Merged PRs (30d)
8

Description

Environment
Component nativescript has 7.2.0 version and is up to date.
✔ Component @nativescript/core has 7.2.1 version and is up to date.
✔ Component @nativescript/ios has 7.2.0 version and is up to date.
✔ Component @nativescript/android has 7.0.1 version and is up to date.

Describe the bug
The use of the command for running on a remote Android emulator (in my case a Virtualbox with Ubuntu 20.04.1 and Android SDK and emulator running) as follows:

$ ANDROID_ADB_SERVER_ADDRESS={VirtualMachineIP} ns run android --no-hmr

The application is installed and has run successfully but the CLI command seems to timeout when trying to connect to the application log with the error:

Installing on device emulator-5554...
Successfully installed on device with identifier 'emulator-5554'.
Unable to apply changes on device: emulator-5554. Error is: connect ECONNREFUSED 127.0.0.1:51258.

Seems like NativeScript is trying to connect to a port in the local machine ignoring the ANDROID_ADB_SERVER_ADDRESS IP address

To Reproduce

  • Create an Ubuntu virtual machine with android SDK on a VirtualBox or similar on a Mac OS host machine
  • create an Android emulator and run it
  • in the virtual machine OS (Ubuntu in this case) terminal run adb -a -P 5037 nodaemon server
  • in the host machine (Mac OS in my case) execute an android application with the NativeScript CLI ANDROID_ADB_SERVER_ADDRESS={VirtualMachineIP} ns run android --no-hmr

Expected behavior
Running an Android application in a remote machine as normal as in host machine with debug and log capabilities.

Additional context
The virtual machine should have bridged adapter configured, I don't know if NAT is also working

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the issue with ANDROID_ADB_SERVER_ADDRESS={VirtualMachineIP} ns run android --no-hmr and the remote adb server setup described above. Trace the Android CLI's installation, log, and debug connection handling, paying particular attention to the reported localhost port. Done means a remote emulator can run the application with debug and log capabilities without the connection timeout.

Written by the indexing model from the issue text.

Assessment

Tech stack
android, javascript
Domain
cli, mobile-dev, networking
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.