Details
-
Type:
Improvement
-
Status: Closed (View Workflow)
-
Priority:
Major
-
Resolution: Fixed
-
Component/s: android-emulator-plugin
-
Labels:None
-
Similar Issues:
Description
Right now, emulators are started like this:
android-sdk/tools/emulator -no-boot-anim -ports 39935,58840 // and some other props
This is not always what you want since while testing, there can be other tooling which connects to this device externally and when using ddmlib, it does not find that emulator since it scans 5554-5585 only but emulator is started outside this range.
In android jenkins plugin, there is a "trick" how to avoid this, adb binary executes
adb connect localhost:generated_avd_port
but ddmlib is not able to mimic this behaviour so tooling which depends on it are lost in finding emulators.
In order to use external tooling, user should be able to use ports which he specifies explicity via configuration of the plugin so random port generation will not be taken into accout. Random port generation should be uses by default when user do not specify them explicity.
From implementation point of view, random port generation is done here
Attachments
Activity
Field | Original Value | New Value |
---|---|---|
Resolution | Fixed [ 1 ] | |
Status | Open [ 1 ] | Closed [ 6 ] |
Workflow | JNJira [ 152630 ] | JNJira + In-Review [ 207216 ] |
You may find that the fix for
JENKINS-12821will help you. That moves the adb port to be a 4 digit number (outside of the 5554-5585 range) and that means that the devices attach themselves and are addressed as emulator-xxxx. I believe that ddmlib uses environment variable ANDROID_ADB_SERVER_PORT and indeed with that fix builds using maven find the emulator without any additional assistance.The fix has not been merged yet but is in pull request https://github.com/jenkinsci/android-emulator-plugin/pull/27