android - adb more than one device/emulator - android

I genymotion emulator and my phone connected , I want to run and debug my application over wifi , I found the instruction to do so but I get this error when I enter this code :
adb tcpip 5555
I get this error :
error: more than one device/emulator
How can I make my device as default or something like that to solve this problem ?

You can send commands to a specific device, according to docs:
$ adb devices
List of devices attached
emulator-5554 device
emulator-5555 device
$ adb -s emulator-5555 do_your_command
Also, if only one is emulator or a real device you can just attach -e or -d and send the command to it:
If you have multiple devices available, but only one is an emulator, use the -e option to send commands to the emulator. Likewise, if there are multiple devices but only one hardware device attached, use the -d option to send commands to the hardware device.

Do following thing which will help you,
You getting the message just because you are connected more than one device.
Run commands
adb devices
after the fire above command, you get the list of the device, From the list select your device id which not emulator
and fire following command
adb -s f725aa8b7ce4(deviceId) tcpip 5555
and after this fire
adb connect yourIp 5555

I was struggling with same issue since months, later while testing in postman I got know that "Appium inspector" is the main reason for this issue. As it creates new session Id and interrupt the running framework server.
Hence, adb kill-server adb start-server resolves the issue as it actually kill the session ID created by Appium inspector and starts new server.

Related

Multiple devices issue in tcpip

I'm using termux in Android
I connect my using tcpip
I can't excute command reason show multiple devices connected
adb devices
List of devices attached
emulator-5554 device
adb allows multiple devices to be connected which will not allow to run the shell
you can try restarting the server using the following command and try again
adb kill-server
adb start-server
it worked for me some one already mentioned about the -s Serial number ( phone / emulator id )
adb -s SERIAL shell
so that will also be a good option to try
you can also try command line to connect with the target using
adb connect xxx.xxx.xxx.xxx:port
you may also try
adb disconnect
and retry
Good luck

ADB devices list empty with wireless debugging

I have Android 11 on my phone, I have setup Wireless Debugging, and in the list of Paired Devices my computer shows up. However, when I run adb devices -l on my computer, the list of devices is empty.
Why am I seeing an empty list. Is there something extra that I need to do?
Here is the device:
Here is the terminal:
You will need to connect to the device before it becomes visible in adb devices -l. You must run adb connect ipaddress:port, in your case adb connect 192.168.1.123:37457. Docs
It says unknown command adb pair
Saw the help there is no pair command listed in the menu
Instead go to platform-tools folder in my case ~/Android/Sdk/platform-tools from here you can execute ./adb and then in the help you can see there the pair option
./adb pair <ipaddress>:<port> will prompt for pairing code
Then you are sucessfully connected

How to change Genymotion port

I would like to run automatized test on different Genymotion devices in the same time. For this I have to give seperate port numbers for each device.
Is it possible?
From the Genymotion Launcher, you are able to start multiple VMs. Although these each will have the same default port (5555), they will get different IP addresses from the VirtualBox host-only adapter. For example, I just launched two Genymotion machines and now adb devices shows:
$ adb devices
List of devices attached
192.168.56.101:5555 device
192.168.56.102:5555 device
$
Each can be addressed separately by specifying IP address and port in your TCP/IP socket program, or by using adb -s if you're doing manual command line work or writing scripts. I won't go into socket programming here, but here's a quick example of selective access using adb to see if the Location service is running on the second device:
$ adb -s 192.168.56.102:5555 shell service check location
Service location: found
$

How do you connect your terminal with the Android emulator

I have tried the navigate to the android tool folder and entering the "adb shell" command but it doesn't seem to work. My terminal seems only to recognize the adb part of the command and gives me an error message. What am I doing wrong???
List all connected devices by typing adb devices
Check, if there are any devices listed. If not you may want to check that your device is connected and/or your emulator is running.
If it works and you have for example your emulator running and your usb-device connected use:
adb shell if you only have device connected.
adb -d shell to connect to an USB-Device.
adb -e shell to connect to an emulated device.
If you have more than one emulator or usb devices you might want to use:
adb -s <DEVICE> shell
Note:
Make sure that the path to the android-sdk is properly set-up in your environment. To quickcheck, fire up a shell and type adb version. If that command succeeds, you're set up. If not, add /path/to/android-sdk/tools and /path/to/android/platform-tools to your $PATH env variable. On windows the android sdk is typically located in C:\Users\<username>\AppData\Local\Android\sdk.

Changing default port (i.e. 5037) on which adb server runs

I am a budding android developer and if there is no easy way of configuring the adb server to run on another port then the inflexibility of the tools will force me to quit android app development.
A web search did not return any solutions.
I also searched for '5037' in all files in android sdk directory but did not find a setting there.
Use the environment variable ANDROID_ADB_SERVER_PORT to select the port.
The following works under bash:
$ export ANDROID_ADB_SERVER_PORT=12345
$ adb start-server
* daemon not running. starting it now on port 12345 *
* daemon started successfully *
$ adb devices
List of devices attached
TA2070M5O6 device
$ ANDROID_ADB_SERVER_PORT=6789 adb devices
* daemon not running. starting it now on port 6789 *
* daemon started successfully *
List of devices attached
In another terminal I ran:
$ ANDROID_ADB_SERVER_PORT=6789 emulator ...
Back to original terminal:
$ ANDROID_ADB_SERVER_PORT=6789 adb devices
List of devices attached
emulator-5554 device
$ adb devices # ANDROID_ADB_SERVER_PORT was exported as 12345
List of devices attached
TA2070M5O6 device
I found this via the Jenkins Android Emulator Plugin as I noticed it was running adb on a different port.
With the latest adb version,
Use option -P (Note: Caps P)to start adb server in a specific port.
For Example, Try
$adb -P 5038 start-server
It will list the devices attached to this specific adb server. If the adb server is not running then it will start a new adb server with the given port number.
Hope it helps someone reading this post.
Thanks.
In Windows, go to Environment Variables – Add a new one called ANDROID_ADB_SERVER_PORT
and set it to whatever you want, I've set to 5038.
Should look like this:
Solved it for me.
There is another variable that supports this for connecting to a different machine's adb:
ADB_SERVER_SOCKET=tcp:some.other.host:1234 adb devices
To use it, you need to start adb on the other host with -a and probably background it too:
( adb -a -P 1234 nodaemon server & ) &

Categories

Resources