phatnhse / android-container Goto Github PK
View Code? Open in Web Editor NEWRun E2E Android Testing with Docker Container
License: Apache License 2.0
Run E2E Android Testing with Docker Container
License: Apache License 2.0
I've followed the instructions listed below.
My machine is a macbook pro with Docker Desktop on it.
Here is my log:
docker run --privileged -it \
--rm -v $PWD:/data \
-v gradle-cache:/cache \
android-container:sunflower \
bash -c '. /start.sh && /data/gradlew test connectedAndroidTest -p /data'
* daemon not running; starting now at tcp:5037
* daemon started successfully
emulator: Android emulator version 30.0.12.0 (build_id 6466327) (CL:N/A)
emulator: Found AVD name 'android_arm'
emulator: Found AVD target architecture: arm
emulator: argv[0]: 'emulator'; program directory: '/opt/android/emulator'
emulator: Found directory: /opt/android/system-images/android-25/google_apis/armeabi-v7a/
emulator: emuDirName: '/opt/android/emulator'
emulator: Found directory: /opt/android/system-images/android-25/google_apis/armeabi-v7a/
emulator: Probing for /opt/android/system-images/android-25/google_apis/armeabi-v7a//kernel-ranchu-64: file missing
emulator: try dir /opt/android/emulator
emulator: Trying emulator path '/opt/android/emulator/qemu/linux-x86_64/qemu-system-armel-headless'
emulator: Found target-specific 64-bit emulator binary: /opt/android/emulator/qemu/linux-x86_64/qemu-system-armel-headless
emulator: Adding library search path: '/opt/android/emulator/lib64'
emulator: Adding library search path: '/opt/android/emulator/lib64/gles_angle'
emulator: Adding library search path: '/opt/android/emulator/lib64/gles_angle9'
emulator: Adding library search path: '/opt/android/emulator/lib64/gles_angle11'
emulator: Adding library search path: '/opt/android/emulator/lib64/gles_swiftshader'
emulator: Adding library search path: '/opt/android/emulator/lib64/libstdc++'
emulator: Running :/opt/android/emulator/qemu/linux-x86_64/qemu-system-armel-headless
emulator: qemu backend: argv[00] = "/opt/android/emulator/qemu/linux-x86_64/qemu-system-armel-headless"
emulator: qemu backend: argv[01] = "-avd"
emulator: qemu backend: argv[02] = "android_arm"
emulator: qemu backend: argv[03] = "-verbose"
emulator: qemu backend: argv[04] = "-no-boot-anim"
emulator: qemu backend: argv[05] = "-no-window"
emulator: qemu backend: argv[06] = "-gpu"
emulator: qemu backend: argv[07] = "off"
emulator: Concatenated backend parameters:
/opt/android/emulator/qemu/linux-x86_64/qemu-system-armel-headless -avd android_arm -verbose -no-boot-anim -no-window -gpu off
emulator: autoconfig: -skin 1080x1920
emulator: autoconfig: -skindir (null)
emulator: autoconfig: -kernel /opt/android/system-images/android-25/google_apis/armeabi-v7a//kernel-ranchu
emulator: Auto-detect: Kernel image requires new device naming scheme.
emulator: Auto-detect: Kernel does not support YAFFS2 partitions.
emulator: autoconfig: -ramdisk /opt/android/system-images/android-25/google_apis/armeabi-v7a//ramdisk.img
emulator: Using initial system image: /opt/android/system-images/android-25/google_apis/armeabi-v7a//system.img
emulator: No vendor image
emulator: autoconfig: -initdata /root/.android/avd/android_arm.avd/userdata.img
emulator: autoconfig: -cache /root/.android/avd/android_arm.avd/cache.img
emulator: Increasing RAM size to 1024MB
emulator: VM heap size 0MB is below hardware specified minimum of 256MB,setting it to that value
emulator: System image is read only
emulator: Found 1 DNS servers: 192.168.65.1
emulator: found magic skin width=1080 height=1920 bpp=16
emulator: VERBOSE: System.cpp:2346: statvfs('/root/.android/avd/android_arm.avd/snapshots/default_boot/ram.img') failed: No such file or directory
emulator: registered 'boot-properties' qemud service
emulator: Adding boot property: 'qemu.cmdline' = 'androidboot.logcat=v:* androidboot.consolepipe=qemu_pipe,pipe:logcat'
emulator: Adding boot property: 'qemu.logcat' = 'start'
emulator: Creating ext4 userdata partition: /root/.android/avd/android_arm.avd/data
Creating filesystem with parameters:
Size: 838860800
Block size: 4096
Blocks per group: 32768
Inodes per group: 7328
Inode size: 256
Journal blocks: 3200
Label:
Blocks: 204800
Block groups: 7
Reserved block group size: 55
Created filesystem with 60/51296 inodes and 10734/204800 blocks
emulator: WARNING: encryption is off
emulator: Creating empty ext4 cache partition: /root/.android/avd/android_arm.avd/cache.img
Creating filesystem with parameters:
Size: 69206016
Block size: 4096
Blocks per group: 32768
Inodes per group: 4224
Inode size: 256
Journal blocks: 1024
Label:
Blocks: 16896
Block groups: 1
Reserved block group size: 7
Created filesystem with 11/4224 inodes and 1302/16896 blocks
emulator: VERBOSE: AdbInterface.cpp:385: Found: 3 adb executables
emulator: VERBOSE: AdbInterface.cpp:387: Adb: /opt/android/platform-tools/adb
emulator: VERBOSE: AdbInterface.cpp:387: Adb: /opt/android/platform-tools/adb
emulator: VERBOSE: AdbInterface.cpp:387: Adb: /opt/android/platform-tools/adb
emulator: VERBOSE: AdbInterface.cpp:408: Path:/opt/android/platform-tools/adb protocol version: 41
emulator: VERBOSE: AdbInterface.cpp:408: Path:/opt/android/platform-tools/adb protocol version: 41
emulator: VERBOSE: AdbInterface.cpp:408: Path:/opt/android/platform-tools/adb protocol version: 41
emulator: GPU emulation is disabled
emulator: VERBOSE: load_config.cpp:242: Verified boot params were not found.
emulator: Found 1 DNS servers: 192.168.65.1
Content of hardware configuration file:
hw.cpu.arch = arm
hw.cpu.model = cortex-a8
hw.cpu.ncore = 2
hw.ramSize = 1024
hw.screen = multi-touch
hw.mainKeys = false
hw.trackBall = false
hw.keyboard = false
hw.keyboard.lid = false
hw.keyboard.charmap = qwerty2
hw.dPad = false
hw.rotaryInput = false
hw.gsmModem = true
hw.gps = true
hw.battery = true
hw.accelerometer = true
hw.gyroscope = true
hw.audioInput = true
hw.audioOutput = true
hw.sdCard = true
disk.cachePartition = true
disk.cachePartition.path = /root/.android/avd/android_arm.avd/cache.img
disk.cachePartition.size = 66m
test.quitAfterBootTimeOut = -1
test.delayAdbTillBootComplete = 0
test.monitorAdb = 0
hw.lcd.width = 1080
hw.lcd.height = 1920
hw.lcd.depth = 16
hw.lcd.density = 480
hw.lcd.backlight = true
hw.lcd.vsync = 60
hw.gltransport = pipe
hw.gltransport.asg.writeBufferSize = 1048576
hw.gltransport.asg.writeStepSize = 4096
hw.gltransport.asg.dataRingSize = 32768
hw.gltransport.drawFlushInterval = 800
hw.displayRegion.0.1.xOffset = -1
hw.displayRegion.0.1.yOffset = -1
hw.displayRegion.0.1.width = 0
hw.displayRegion.0.1.height = 0
hw.fold.adjust = false
hw.display1.width = 0
hw.display1.height = 0
hw.display1.density = 0
hw.display1.xOffset = -1
hw.display1.yOffset = -1
hw.display1.flag = 0
hw.display2.width = 0
hw.display2.height = 0
hw.display2.density = 0
hw.display2.xOffset = -1
hw.display2.yOffset = -1
hw.display2.flag = 0
hw.display3.width = 0
hw.display3.height = 0
hw.display3.density = 0
hw.display3.xOffset = -1
hw.display3.yOffset = -1
hw.display3.flag = 0
hw.gpu.enabled = false
hw.gpu.mode = off
hw.initialOrientation = portrait
hw.camera.back = emulated
hw.camera.front = none
vm.heapSize = 256
hw.sensors.light = true
hw.sensors.pressure = true
hw.sensors.humidity = true
hw.sensors.proximity = true
hw.sensors.magnetic_field = true
hw.sensors.magnetic_field_uncalibrated = true
hw.sensors.gyroscope_uncalibrated = true
hw.sensors.orientation = true
hw.sensors.temperature = true
hw.useext4 = true
hw.arc = false
hw.arc.autologin = false
kernel.path = /opt/android/system-images/android-25/google_apis/armeabi-v7a//kernel-ranchu
kernel.newDeviceNaming = yes
kernel.supportsYaffs2 = no
disk.ramdisk.path = /opt/android/system-images/android-25/google_apis/armeabi-v7a//ramdisk.img
disk.systemPartition.initPath = /opt/android/system-images/android-25/google_apis/armeabi-v7a//system.img
disk.systemPartition.size = 2g
disk.vendorPartition.size = 0
disk.dataPartition.path = /root/.android/avd/android_arm.avd/userdata-qemu.img
disk.dataPartition.initPath = /root/.android/avd/android_arm.avd/userdata.img
disk.dataPartition.size = 800m
PlayStore.enabled = false
avd.name = android_arm
avd.id = android_arm
fastboot.forceColdBoot = false
android.sdk.root = /opt/android
android.avd.home = /root/.android/avd
.
QEMU options list:
emulator: argv[00] = "/opt/android/emulator/qemu/linux-x86_64/qemu-system-armel-headless"
emulator: argv[01] = "-dns-server"
emulator: argv[02] = "192.168.65.1"
emulator: argv[03] = "-mem-path"
emulator: argv[04] = "/root/.android/avd/android_arm.avd/snapshots/default_boot/ram.img"
emulator: argv[05] = "-mem-file-shared"
emulator: argv[06] = "-serial"
emulator: argv[07] = "null"
emulator: argv[08] = "-device"
emulator: argv[09] = "goldfish_pstore,addr=0xff018000,size=0x10000,file=/root/.android/avd/android_arm.avd/data/misc/pstore/pstore.bin"
emulator: argv[10] = "-cpu"
emulator: argv[11] = "cortex-a15"
emulator: argv[12] = "-machine"
emulator: argv[13] = "type=ranchu"
emulator: argv[14] = "-m"
emulator: argv[15] = "1024"
emulator: argv[16] = "-lcd-density"
emulator: argv[17] = "480"
emulator: argv[18] = "-nodefaults"
emulator: argv[19] = "-kernel"
emulator: argv[20] = "/opt/android/system-images/android-25/google_apis/armeabi-v7a//kernel-ranchu"
emulator: argv[21] = "-initrd"
emulator: argv[22] = "/opt/android/system-images/android-25/google_apis/armeabi-v7a//ramdisk.img"
emulator: argv[23] = "-drive"
emulator: argv[24] = "index=0,id=userdata,if=none,file=/root/.android/avd/android_arm.avd/userdata-qemu.img.qcow2,overlap-check=none,cache=unsafe,l2-cache-size=1048576"
emulator: argv[25] = "-device"
emulator: argv[26] = "virtio-blk-device,drive=userdata"
emulator: argv[27] = "-drive"
emulator: argv[28] = "index=1,id=cache,if=none,file=/root/.android/avd/android_arm.avd/cache.img.qcow2,overlap-check=none,cache=unsafe,l2-cache-size=1048576"
emulator: argv[29] = "-device"
emulator: argv[30] = "virtio-blk-device,drive=cache"
emulator: argv[31] = "-drive"
emulator: argv[32] = "index=2,id=system,if=none,file=/opt/android/system-images/android-25/google_apis/armeabi-v7a//system.img,read-only"
emulator: argv[33] = "-device"
emulator: argv[34] = "virtio-blk-device,drive=system"
emulator: argv[35] = "-netdev"
emulator: argv[36] = "user,id=mynet"
emulator: argv[37] = "-device"
emulator: argv[38] = "virtio-net-device,netdev=mynet"
emulator: argv[39] = "-device"
emulator: argv[40] = "virtio-rng-device"
emulator: argv[41] = "-show-cursor"
emulator: argv[42] = "-L"
emulator: argv[43] = "/opt/android/emulator/lib/pc-bios"
emulator: argv[44] = "-append"
emulator: argv[45] = "qemu=1 no_timer_check androidboot.hardware=ranchu androidboot.serialno=EMULATOR30X0X12X0 keep_bootcon earlyprintk=ttyAMA0 android.qemud=1 console=0 android.checkjni=1 android.bootanim=0 qemu.gles=2 qemu.settings.system.screen_off_timeout=2147483647 qemu.vsync=60 qemu.gltransport=pipe qemu.gltransport.drawFlushInterval=800 qemu.opengles.version=131072 cma=288M@0-4G qemu.wifi=1 mac80211_hwsim.channels=2 loop.max_part=7 ramoops.mem_address=0xff018000 ramoops.mem_size=0x10000 memmap=0x10000$0xff018000 qemu.dalvik.vm.heapsize=256m"
emulator: argv[46] = "-android-hw"
emulator: argv[47] = "/root/.android/avd/android_arm.avd/hardware-qemu.ini"
Concatenated QEMU options:
/opt/android/emulator/qemu/linux-x86_64/qemu-system-armel-headless -dns-server 192.168.65.1 -mem-path /root/.android/avd/android_arm.avd/snapshots/default_boot/ram.img -mem-file-shared -serial null -device goldfish_pstore,addr=0xff018000,size=0x10000,file=/root/.android/avd/android_arm.avd/data/misc/pstore/pstore.bin -cpu cortex-a15 -machine type=ranchu -m 1024 -lcd-density 480 -nodefaults -kernel /opt/android/system-images/android-25/google_apis/armeabi-v7a//kernel-ranchu -initrd /opt/android/system-images/android-25/google_apis/armeabi-v7a//ramdisk.img -drive index=0,id=userdata,if=none,file=/root/.android/avd/android_arm.avd/userdata-qemu.img.qcow2,overlap-check=none,cache=unsafe,l2-cache-size=1048576 -device virtio-blk-device,drive=userdata -drive index=1,id=cache,if=none,file=/root/.android/avd/android_arm.avd/cache.img.qcow2,overlap-check=none,cache=unsafe,l2-cache-size=1048576 -device virtio-blk-device,drive=cache -drive index=2,id=system,if=none,file=/opt/android/system-images/android-25/google_apis/armeabi-v7a//system.img,read-only -device virtio-blk-device,drive=system -netdev user,id=mynet -device virtio-net-device,netdev=mynet -device virtio-rng-device -show-cursor -L /opt/android/emulator/lib/pc-bios -append 'qemu=1 no_timer_check androidboot.hardware=ranchu androidboot.serialno=EMULATOR30X0X12X0 keep_bootcon earlyprintk=ttyAMA0 android.qemud=1 console=0 android.checkjni=1 android.bootanim=0 qemu.gles=2 qemu.settings.system.screen_off_timeout=2147483647 qemu.vsync=60 qemu.gltransport=pipe qemu.gltransport.drawFlushInterval=800 qemu.opengles.version=131072 cma=288M@0-4G qemu.wifi=1 mac80211_hwsim.channels=2 loop.max_part=7 ramoops.mem_address=0xff018000 ramoops.mem_size=0x10000 memmap=0x10000$0xff018000 qemu.dalvik.vm.heapsize=256m' -android-hw /root/.android/avd/android_arm.avd/hardware-qemu.ini
emulator: Android qemu version 30.0.12.0 (build_id 6466327) (CL:N/A)
emulator: Starting QEMU main loop
emulator: Adding boot property: 'ro.opengles.version' = '131072'
emulator: Adding boot property: 'qemu.sf.fake_camera' = 'back'
emulator: Adding boot property: 'dalvik.vm.heapsize' = '256m'
emulator: Adding boot property: 'qemu.hw.mainkeys' = '0'
emulator: Adding boot property: 'qemu.sf.lcd_density' = '480'
emulator: goldfish_events.have-dpad: false
emulator: goldfish_events.have-trackball: false
emulator: goldfish_events.have-camera: true
emulator: goldfish_events.have-keyboard: false
emulator: goldfish_events.have-lidswitch: false
emulator: goldfish_events.have-tabletmode: false
emulator: goldfish_events.have-touch: false
emulator: goldfish_events.have-multitouch: true
emulator: control console listening on port 5554, ADB on port 5555
pulseaudio: Failed to initialize PA contextaudio: Could not init `pa' audio driver
Not using any http proxy
### WARNING: could not find /usr/share/zoneinfo/ directory. unable to determine host timezone
emulator: Adding boot property: 'qemu.timezone' = 'Unknown/Unknown'
emulator: android_hw_fingerprint_init: fingerprint qemud listen service initialized
E0818 14:59:00.955922600 47 socket_utils_common_posix.cc:201] check for SO_REUSEPORT: {"created":"@1597762740.955870900","description":"SO_REUSEPORT unavailable on compiling system","file":"/mnt/tmpfs/src/android/emu-master-dev/external/grpc/src/core/lib/iomgr/socket_utils_common_posix.cc","file_line":169}
emulator: VERBOSE: GrpcServices.cpp:267: Started GRPC server at 127.0.0.1:8554, security: Local
emulator: emulator_window_fb_rotate
Your emulator is out of date, please update by launching Android Studio:
- Start Android Studio
- Select menu "Tools > Android > SDK Manager"
- Click "SDK Tools" tab
- Check "Android Emulator" checkbox
- Click "OK"
emulator: onGuestSendCommand: [0x41ce1a0] Adb connected, start proxing data
Boot Status:
### WARNING: could not find /usr/share/zoneinfo/ directory. unable to determine host timezone
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Hello, thanks a lot for example!
Could you please help to find issue?
I'm running it on jenkins (CentOS Linux), but faced with the same error as on Windows and OSX (run emulator failed, nested virtualization is not supported)
More details about OS and CPU and all logs in the attached file.
Thanks in advance.
jenkins pipeline result.txt
Hi. I followed your sample, and this is the result! what is wrong? why container download the gradle again?
sudo docker run --privileged -it --rm -v $PWD:/data android-container bash -c ". /start.sh && gradlew test && gradlew connectedAndroidTest -p /data"
* daemon not running; starting now at tcp:5037
* daemon started successfully
emulator: WARNING: Your AVD has been configured with an in-guest renderer, but the system image does not support guest rendering.Falling back to 'swiftshader_indirect' mode.
### WARNING: could not find /usr/share/zoneinfo/ directory. unable to determine host timezone
Your emulator is out of date, please update by launching Android Studio:
- Start Android Studio
- Select menu "Tools > Android > SDK Manager"
- Click "SDK Tools" tab
- Check "Android Emulator" checkbox
- Click "OK"
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
### WARNING: could not find /usr/share/zoneinfo/ directory. unable to determine host timezone
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status: 1
emulator: INFO: boot completed
emulator: INFO: boot time 50057 ms
emulator: Increasing screen off timeout, logcat buffer size to 2M.
emulator: Revoking microphone permissions for Google App.
Downloading https://services.gradle.org/distributions/gradle-5.4.1-bin.zip
.....### WARNING: could not find /usr/share/zoneinfo/ directory. unable to determine host timezone
..............................................................................
Starting a Gradle Daemon, 1 incompatible and 1 stopped Daemons could not be reused, use --status for details
FAILURE: Build failed with an exception.
* What went wrong:
A problem occurred configuring root project ''.
> The project name must not be empty. Set the 'rootProject.name' or adjust the 'include' statement (see https://docs.gradle.org/5.4.1/dsl/org.gradle.api.initialization.Settings.html#org.gradle.api.initialization.Settings:include(java.lang.String[]) for more details).
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
* Get more help at https://help.gradle.org
BUILD FAILED in 4m 19s
Hi, sorry if my problem not related, but if you can help me plz.
When i build my docker by copy the emulator file in #1, I have an initialized device. So i can increase the boot time by snapshot like when using android studio. But when i try using this feature i get this error on exit (i get the result on the ubuntu on VM as root (like ubuntu in docker)):
emulator: Saving state on exit with session uptime 15645 ms
[8566:8566:0201/214339.170588:ERROR:zygote_host_impl_linux.cc(89)] Running as root without --no-sandbox is not supported. See https://crbug.com/638180.
Any idea how can i fix it?
Thanks
Hi.
Thank you for your great work. I am new in docker, i want to use android emulator in docker to do some tasks. If you can help me if this possible or not and how to do this.
I want to install some application by default in emulator, and then install my application to read notification of the emulator device for some deadline time and then stop and remove the container.
I want to do this using docker API in Golang, so i don't need GUI at all, and just collect some data in a text file and then pull the file using adb in a short time. I need to my code (code to run android-container image in docker and communicate with the emulator using adb) run in another docker container.
So i want to run a container that run another container (emulator) and manage all of this and return my result.
My question:
Thanks.
Hi,
Thanks for your great work.
I run below command to check haxm on mac:
$kextstat | grep intel
167 0 0xffffff7f83b0a000 0x28000 0x28000 com.intel.kext.intelhaxm (7.3.0) 65C423BE-0315-30BD-8DA8-CABFE8487E10 <8 6 5 3 1>
The command is taken from here:
Android unit test works fine.
docker run --privileged -it --rm -v $PWD:/data -v gradle-cache:/cache android-container:sunflower bash -c '/data/gradlew test -p /data'
I couldn't run ui test. android_arm emulator never starts.
$docker run --privileged -it --rm -v $PWD:/data -v gradle-cache:/cache android-container:sunflower bash -c '. /start.sh &
& /data/gradlew test connectedAndroidTest -p /data'
* daemon not running; starting now at tcp:5037
* daemon started successfully
emulator: Android emulator version 30.0.12.0 (build_id 6466327) (CL:N/A)
emulator: Found AVD name 'android_arm'
emulator: Found AVD target architecture: arm
emulator: argv[0]: 'emulator'; program directory: '/opt/android/emulator'
emulator: Found directory: /opt/android/system-images/android-25/google_apis/armeabi-v7a/
emulator: emuDirName: '/opt/android/emulator'
emulator: Found directory: /opt/android/system-images/android-25/google_apis/armeabi-v7a/
emulator: Probing for /opt/android/system-images/android-25/google_apis/armeabi-v7a//kernel-ranchu-64: file missing
emulator: try dir /opt/android/emulator
emulator: Trying emulator path '/opt/android/emulator/qemu/linux-x86_64/qemu-system-armel-headless'
emulator: Found target-specific 64-bit emulator binary: /opt/android/emulator/qemu/linux-x86_64/qemu-system-armel-headless
emulator: Adding library search path: '/opt/android/emulator/lib64'
emulator: Adding library search path: '/opt/android/emulator/lib64/gles_angle'
emulator: Adding library search path: '/opt/android/emulator/lib64/gles_angle9'
emulator: Adding library search path: '/opt/android/emulator/lib64/gles_angle11'
emulator: Adding library search path: '/opt/android/emulator/lib64/gles_swiftshader'
emulator: Adding library search path: '/opt/android/emulator/lib64/libstdc++'
emulator: Running :/opt/android/emulator/qemu/linux-x86_64/qemu-system-armel-headless
emulator: qemu backend: argv[00] = "/opt/android/emulator/qemu/linux-x86_64/qemu-system-armel-headless"
emulator: qemu backend: argv[01] = "-avd"
emulator: qemu backend: argv[02] = "android_arm"
emulator: qemu backend: argv[03] = "-verbose"
emulator: qemu backend: argv[04] = "-no-boot-anim"
emulator: qemu backend: argv[05] = "-no-window"
emulator: qemu backend: argv[06] = "-gpu"
emulator: qemu backend: argv[07] = "off"
emulator: Concatenated backend parameters:
/opt/android/emulator/qemu/linux-x86_64/qemu-system-armel-headless -avd android_arm -verbose -no-boot-anim -no-window -gpu off
emulator: autoconfig: -skin 1080x1920
emulator: autoconfig: -skindir (null)
emulator: autoconfig: -kernel /opt/android/system-images/android-25/google_apis/armeabi-v7a//kernel-ranchu
emulator: Auto-detect: Kernel image requires new device naming scheme.
emulator: Auto-detect: Kernel does not support YAFFS2 partitions.
emulator: autoconfig: -ramdisk /opt/android/system-images/android-25/google_apis/armeabi-v7a//ramdisk.img
emulator: Using initial system image: /opt/android/system-images/android-25/google_apis/armeabi-v7a//system.img
emulator: No vendor image
emulator: autoconfig: -initdata /root/.android/avd/android_arm.avd/userdata.img
emulator: autoconfig: -cache /root/.android/avd/android_arm.avd/cache.img
emulator: Increasing RAM size to 1024MB
emulator: VM heap size 0MB is below hardware specified minimum of 256MB,setting it to that value
emulator: System image is read only
emulator: Found 1 DNS servers: 192.168.65.1
emulator: found magic skin width=1080 height=1920 bpp=16
emulator: VERBOSE: System.cpp:2346: statvfs('/root/.android/avd/android_arm.avd/snapshots/default_boot/ram.img') failed: No such file or directory
emulator: registered 'boot-properties' qemud service
emulator: Adding boot property: 'qemu.cmdline' = 'androidboot.logcat=v:* androidboot.consolepipe=qemu_pipe,pipe:logcat'
emulator: Adding boot property: 'qemu.logcat' = 'start'
emulator: Creating ext4 userdata partition: /root/.android/avd/android_arm.avd/data
Creating filesystem with parameters:
Size: 838860800
Block size: 4096
Blocks per group: 32768
Inodes per group: 7328
Inode size: 256
Journal blocks: 3200
Label:
Blocks: 204800
Block groups: 7
Reserved block group size: 55
Created filesystem with 60/51296 inodes and 10734/204800 blocks
emulator: WARNING: encryption is off
emulator: Creating empty ext4 cache partition: /root/.android/avd/android_arm.avd/cache.img
Creating filesystem with parameters:
Size: 69206016
Block size: 4096
Blocks per group: 32768
Inodes per group: 4224
Inode size: 256
Journal blocks: 1024
Label:
Blocks: 16896
Block groups: 1
Reserved block group size: 7
Created filesystem with 11/4224 inodes and 1302/16896 blocks
emulator: VERBOSE: AdbInterface.cpp:385: Found: 3 adb executables
emulator: VERBOSE: AdbInterface.cpp:387: Adb: /opt/android/platform-tools/adb
emulator: VERBOSE: AdbInterface.cpp:387: Adb: /opt/android/platform-tools/adb
emulator: VERBOSE: AdbInterface.cpp:387: Adb: /opt/android/platform-tools/adb
emulator: VERBOSE: AdbInterface.cpp:408: Path:/opt/android/platform-tools/adb protocol version: 41
emulator: VERBOSE: AdbInterface.cpp:408: Path:/opt/android/platform-tools/adb protocol version: 41
emulator: VERBOSE: AdbInterface.cpp:408: Path:/opt/android/platform-tools/adb protocol version: 41
emulator: GPU emulation is disabled
emulator: VERBOSE: load_config.cpp:242: Verified boot params were not found.
emulator: Found 1 DNS servers: 192.168.65.1
Content of hardware configuration file:
hw.cpu.arch = arm
hw.cpu.model = cortex-a8
hw.cpu.ncore = 2
hw.ramSize = 1024
hw.screen = multi-touch
hw.mainKeys = false
hw.trackBall = false
hw.keyboard = false
hw.keyboard.lid = false
hw.keyboard.charmap = qwerty2
hw.dPad = false
hw.rotaryInput = false
hw.gsmModem = true
hw.gps = true
hw.battery = true
hw.accelerometer = true
hw.gyroscope = true
hw.audioInput = true
hw.audioOutput = true
hw.sdCard = true
disk.cachePartition = true
disk.cachePartition.path = /root/.android/avd/android_arm.avd/cache.img
disk.cachePartition.size = 66m
test.quitAfterBootTimeOut = -1
test.delayAdbTillBootComplete = 0
test.monitorAdb = 0
hw.lcd.width = 1080
hw.lcd.height = 1920
hw.lcd.depth = 16
hw.lcd.density = 480
hw.lcd.backlight = true
hw.lcd.vsync = 60
hw.gltransport = pipe
hw.gltransport.asg.writeBufferSize = 1048576
hw.gltransport.asg.writeStepSize = 4096
hw.gltransport.asg.dataRingSize = 32768
hw.gltransport.drawFlushInterval = 800
hw.displayRegion.0.1.xOffset = -1
hw.displayRegion.0.1.yOffset = -1
hw.displayRegion.0.1.width = 0
hw.displayRegion.0.1.height = 0
hw.fold.adjust = false
hw.display1.width = 0
hw.display1.height = 0
hw.display1.density = 0
hw.display1.xOffset = -1
hw.display1.yOffset = -1
hw.display1.flag = 0
hw.display2.width = 0
hw.display2.height = 0
hw.display2.density = 0
hw.display2.xOffset = -1
hw.display2.yOffset = -1
hw.display2.flag = 0
hw.display3.width = 0
hw.display3.height = 0
hw.display3.density = 0
hw.display3.xOffset = -1
hw.display3.yOffset = -1
hw.display3.flag = 0
hw.gpu.enabled = false
hw.gpu.mode = off
hw.initialOrientation = portrait
hw.camera.back = emulated
hw.camera.front = none
vm.heapSize = 256
hw.sensors.light = true
hw.sensors.pressure = true
hw.sensors.humidity = true
hw.sensors.proximity = true
hw.sensors.magnetic_field = true
hw.sensors.magnetic_field_uncalibrated = true
hw.sensors.gyroscope_uncalibrated = true
hw.sensors.orientation = true
hw.sensors.temperature = true
hw.useext4 = true
hw.arc = false
hw.arc.autologin = false
kernel.path = /opt/android/system-images/android-25/google_apis/armeabi-v7a//kernel-ranchu
kernel.newDeviceNaming = yes
kernel.supportsYaffs2 = no
disk.ramdisk.path = /opt/android/system-images/android-25/google_apis/armeabi-v7a//ramdisk.img
disk.systemPartition.initPath = /opt/android/system-images/android-25/google_apis/armeabi-v7a//system.img
disk.systemPartition.size = 2g
disk.vendorPartition.size = 0
disk.dataPartition.path = /root/.android/avd/android_arm.avd/userdata-qemu.img
disk.dataPartition.initPath = /root/.android/avd/android_arm.avd/userdata.img
disk.dataPartition.size = 800m
PlayStore.enabled = false
avd.name = android_arm
avd.id = android_arm
fastboot.forceColdBoot = false
android.sdk.root = /opt/android
android.avd.home = /root/.android/avd
.
QEMU options list:
emulator: argv[00] = "/opt/android/emulator/qemu/linux-x86_64/qemu-system-armel-headless"
emulator: argv[01] = "-dns-server"
emulator: argv[02] = "192.168.65.1"
emulator: argv[03] = "-mem-path"
emulator: argv[04] = "/root/.android/avd/android_arm.avd/snapshots/default_boot/ram.img"
emulator: argv[05] = "-mem-file-shared"
emulator: argv[06] = "-serial"
emulator: argv[07] = "null"
emulator: argv[08] = "-device"
emulator: argv[09] = "goldfish_pstore,addr=0xff018000,size=0x10000,file=/root/.android/avd/android_arm.avd/data/misc/pstore/pstore.bin"
emulator: argv[10] = "-cpu"
emulator: argv[11] = "cortex-a15"
emulator: argv[12] = "-machine"
emulator: argv[13] = "type=ranchu"
emulator: argv[14] = "-m"
emulator: argv[15] = "1024"
emulator: argv[16] = "-lcd-density"
emulator: argv[17] = "480"
emulator: argv[18] = "-nodefaults"
emulator: argv[19] = "-kernel"
emulator: argv[20] = "/opt/android/system-images/android-25/google_apis/armeabi-v7a//kernel-ranchu"
emulator: argv[21] = "-initrd"
emulator: argv[22] = "/opt/android/system-images/android-25/google_apis/armeabi-v7a//ramdisk.img"
emulator: argv[23] = "-drive"
emulator: argv[24] = "index=0,id=userdata,if=none,file=/root/.android/avd/android_arm.avd/userdata-qemu.img.qcow2,overlap-check=none,cache=unsafe,l2-cache-size=1048576"
emulator: argv[25] = "-device"
emulator: argv[26] = "virtio-blk-device,drive=userdata"
emulator: argv[27] = "-drive"
emulator: argv[28] = "index=1,id=cache,if=none,file=/root/.android/avd/android_arm.avd/cache.img.qcow2,overlap-check=none,cache=unsafe,l2-cache-size=1048576"
emulator: argv[29] = "-device"
emulator: argv[30] = "virtio-blk-device,drive=cache"
emulator: argv[31] = "-drive"
emulator: argv[32] = "index=2,id=system,if=none,file=/opt/android/system-images/android-25/google_apis/armeabi-v7a//system.img,read-only"
emulator: argv[33] = "-device"
emulator: argv[34] = "virtio-blk-device,drive=system"
emulator: argv[35] = "-netdev"
emulator: argv[36] = "user,id=mynet"
emulator: argv[37] = "-device"
emulator: argv[38] = "virtio-net-device,netdev=mynet"
emulator: argv[39] = "-device"
emulator: argv[40] = "virtio-rng-device"
emulator: argv[41] = "-show-cursor"
emulator: argv[42] = "-L"
emulator: argv[43] = "/opt/android/emulator/lib/pc-bios"
emulator: argv[44] = "-append"
emulator: argv[45] = "qemu=1 no_timer_check androidboot.hardware=ranchu androidboot.serialno=EMULATOR30X0X12X0 keep_bootcon earlyprintk=ttyAMA0 android.qemud=1 console=0 android.checkjni=1 android.bootanim=0 qemu.gles=2 qemu.settings.system.screen_off_timeout=2147483647 qemu.vsync=60 qemu.gltransport=pipe qemu.gltransport.drawFlushInterval=800 qemu.opengles.version=131072 cma=288M@0-4G qemu.wifi=1 mac80211_hwsim.channels=2 loop.max_part=7 ramoops.mem_address=0xff018000 ramoops.mem_size=0x10000 memmap=0x10000$0xff018000 qemu.dalvik.vm.heapsize=256m"
emulator: argv[46] = "-android-hw"
emulator: argv[47] = "/root/.android/avd/android_arm.avd/hardware-qemu.ini"
Concatenated QEMU options:
/opt/android/emulator/qemu/linux-x86_64/qemu-system-armel-headless -dns-server 192.168.65.1 -mem-path /root/.android/avd/android_arm.avd/snapshots/default_boot/ram.img -mem-file-shared -serial null -device goldfish_pstore,addr=0xff018000,size=0x10000,file=/root/.android/avd/android_arm.avd/data/misc/pstore/pstore.bin -cpu cortex-a15 -machine type=ranchu -m 1024 -lcd-density 480 -nodefaults -kernel /opt/android/system-images/android-25/google_apis/armeabi-v7a//kernel-ranchu -initrd /opt/android/system-images/android-25/google_apis/armeabi-v7a//ramdisk.img -drive index=0,id=userdata,if=none,file=/root/.android/avd/android_arm.avd/userdata-qemu.img.qcow2,overlap-check=none,cache=unsafe,l2-cache-size=1048576 -device virtio-blk-device,drive=userdata -drive index=1,id=cache,if=none,file=/root/.android/avd/android_arm.avd/cache.img.qcow2,overlap-check=none,cache=unsafe,l2-cache-size=1048576 -device virtio-blk-device,drive=cache -drive index=2,id=system,if=none,file=/opt/android/system-images/android-25/google_apis/armeabi-v7a//system.img,read-only -device virtio-blk-device,drive=system -netdev user,id=mynet -device virtio-net-device,netdev=mynet -device virtio-rng-device -show-cursor -L /opt/android/emulator/lib/pc-bios -append 'qemu=1 no_timer_check androidboot.hardware=ranchu androidboot.serialno=EMULATOR30X0X12X0 keep_bootcon earlyprintk=ttyAMA0 android.qemud=1 console=0 android.checkjni=1 android.bootanim=0 qemu.gles=2 qemu.settings.system.screen_off_timeout=2147483647 qemu.vsync=60 qemu.gltransport=pipe qemu.gltransport.drawFlushInterval=800 qemu.opengles.version=131072 cma=288M@0-4G qemu.wifi=1 mac80211_hwsim.channels=2 loop.max_part=7 ramoops.mem_address=0xff018000 ramoops.mem_size=0x10000 memmap=0x10000$0xff018000 qemu.dalvik.vm.heapsize=256m' -android-hw /root/.android/avd/android_arm.avd/hardware-qemu.ini
emulator: Android qemu version 30.0.12.0 (build_id 6466327) (CL:N/A)
emulator: Starting QEMU main loop
emulator: Adding boot property: 'ro.opengles.version' = '131072'
emulator: Adding boot property: 'qemu.sf.fake_camera' = 'back'
emulator: Adding boot property: 'dalvik.vm.heapsize' = '256m'
emulator: Adding boot property: 'qemu.hw.mainkeys' = '0'
emulator: Adding boot property: 'qemu.sf.lcd_density' = '480'
emulator: goldfish_events.have-dpad: false
emulator: goldfish_events.have-trackball: false
emulator: goldfish_events.have-camera: true
emulator: goldfish_events.have-keyboard: false
emulator: goldfish_events.have-lidswitch: false
emulator: goldfish_events.have-tabletmode: false
emulator: goldfish_events.have-touch: false
emulator: goldfish_events.have-multitouch: true
emulator: control console listening on port 5554, ADB on port 5555
pulseaudio: Failed to initialize PA contextaudio: Could not init `pa' audio driver
Not using any http proxy
### WARNING: could not find /usr/share/zoneinfo/ directory. unable to determine host timezone
emulator: Adding boot property: 'qemu.timezone' = 'Unknown/Unknown'
emulator: android_hw_fingerprint_init: fingerprint qemud listen service initialized
E0527 11:36:50.751170600 47 socket_utils_common_posix.cc:201] check for SO_REUSEPORT: {"created":"@1590579410.751072600","description":"SO_REUSEPORT unavailable on compiling system","file":"/mnt/tmpfs/src/android/emu-master-dev/external/grpc/src/core/lib/iomgr/socket_utils_common_posix.cc","file_line":169}
emulator: VERBOSE: GrpcServices.cpp:267: Started GRPC server at 127.0.0.1:8554, security: Local
emulator: emulator_window_fb_rotate
Your emulator is out of date, please update by launching Android Studio:
- Start Android Studio
- Select menu "Tools > Android > SDK Manager"
- Click "SDK Tools" tab
- Check "Android Emulator" checkbox
- Click "OK"
emulator: onGuestSendCommand: [0x3722c30] Adb connected, start proxing data
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
Boot Status:
....
I need help to start arm emulator. Or how can I enable kvm/haxm on the container ?
I changed this line https://github.com/fastphat/android-container/blob/master/start.sh#L13
$ANDROID_HOME/emulator/emulator -avd "${emulator_name}" -verbose -no-boot-anim -no-window -gpu off &
$ANDROID_HOME/emulator/emulator -avd android_arm -no-audio -no-window &
But neither of them worked for me.
Amazing job and very useful
But I have an issue I was trying to use the emulator and load and apk fike through appium that running on the same container but I keep getting this issue
[[Unable to create a new remote session. Please check the server log for more details. Original error: An unknown server-side error occurred while processing the command. Original error: Could not find 'zipalign' in ["/opt/android/platform-tools/zipalign","/opt/android/emulator/zipalign","/opt/android/tools/zipalign","/opt/android/tools/bin/zipalign"]. Do you have Android Build Tools installed at '/opt/android'?]
]
not sure whats the problem it occurs only when I use Jenkins pipeline, if I run everything locally copy the apk to container /opt directory and launch my test its working fine
but when I use Jenkins pipeline with same commands i got the error above
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.