docker-android icon indicating copy to clipboard operation
docker-android copied to clipboard

Back & Restore avd not working

Open omritoptix opened this issue 5 years ago • 5 comments

Operating System: Ubuntu 18.04

Docker Image: butomo1989/docker-android-x86-7.1.1

Docker Version:
17.12.1-ce

Docker-compose version (Only if you use it):
1.22.0

Docker Command to start docker-android:
docker-compose up --build -d

Expected Behavior

I installed an apk on a fresh avd. I expected the former avd to be used (with the installed apk) once I restart docker compose with docker-compose stop && echo 'y' | docker-compose rm && docker-compose up --build -d

Actual Behavior

The avd is initialized from scratch again and doesn't include the previously installed apk.

docker compose file

# Note: It requires docker-compose 1.13.0
#
# Usage: docker-compose up -d
version: "2.2"

services:
  # Docker-Android for Android application testing
  nexus_7.1.1:
    image: butomo1989/docker-android-x86-7.1.1
    container_name: appium_emulator_1
    privileged: true
    # Increase scale number if needed
    scale: 1
    ports:
      - 6080
    # Change path of apk that you want to test. I use sample_apk that I provide in folder "example"
    volumes:
      - ./video-nexus_7.1.1:/tmp/video
      - ./local_backup/.android:/root/.android
      - ./local_backup/android_emulator:/root/android_emulator
    environment:
      - DEVICE=Nexus 5
      - CONNECT_TO_GRID=true
      - APPIUM=true
      - SELENIUM_HOST=selenium_hub
      - AUTO_RECORD=true

Update:

it seems like the file devices.xml is not created under the .android directory which causes the is_initialized() function to return False

omritoptix avatar Nov 12 '18 14:11 omritoptix

The same issue is seen here too. Did you ever get to fix it? @omritoptix

cesarandreslopez avatar May 17 '19 03:05 cesarandreslopez

A bit more data in case anyone else encounters this issue. I've found that if before stopping and rm the container I turn off the emulator phone on novnc, this issue goes away.

cesarandreslopez avatar May 17 '19 04:05 cesarandreslopez

same issue as above, i try to use docker volume, but it still not save any changes in avd every time i restart/stop the container.

K4W1H0R53 avatar Jun 29 '19 11:06 K4W1H0R53

In the file src/app.py there is a lookup for 'hw.device.name={}', however in the config file for my emulator (Nexus 5), there are spaces around the equals sign. I changed it to 'hw.device.name = {}' and then re-built the image. It now works fine for me, remembering the avd state.

cleancoderob avatar Dec 31 '19 19:12 cleancoderob

The spacing issue appears to depend on the API version. I moved from API 27, where the spaces were needed, back to API 23, where the spaces must be removed.

cleancoderob avatar Jan 09 '20 18:01 cleancoderob