0 votos

Android Market desaparece después de reiniciar el emulador en Windows

Posible duplicado:
Android Market desaparece tras el reinicio del emulador

Tengo el mismo problema que se menciona aquí . Pero mis especificaciones son las siguientes:

SO=Windows 7 SP1 Revisión del SDK = 21.0.1

  • SO = Windows 7 SP1
  • Revisión del SDK = 21.0.1
  • Android-SDK=3.0(Nivel de API 11)

Detalles del AVD

Nombre: DemoDevice1

CPU/ABI: ARM(armeabi)

Ruta: c: \Users\The WABBIT.Android \AVD\DemoDevice1.avd

Objetivo: Android 3.0 (nivel de API 11)

La piel: WXGA

Tarjeta SD: 2048

hw.lcd.density: 213

vm.heapSize: 32

hw.ramSize: 1024

Ya he eliminado el SdkSetup.apk del emulador y luego he añadido los paquetes GoogleServicesFramework.apk y Vending.apk al emulador.

Pero, al reiniciar, todo vuelve a ser como antes de los cambios. No soy capaz de encontrar un archivo img actualizado en cualquier directorio temporal, o cualquier directorio, como se indica en el post mencionado anteriormente.

¿Puede alguien ayudarme con esto?

0voto

digsrafik Puntos 101

Para aquellos que están utilizando la versión de Windows del SDK de Android la respuesta dada en Android Market desaparece tras el reinicio del emulador es lo correcto. Pero el nombre del archivo .img y la ubicación del directorio temporal difieren de los indicados en ese post.

La razón de la diferencia no puedo decirla, pero sospecho que se debe a una de las siguientes razones.

  1. Estoy usando Windows en lugar de Linux.
  2. Estoy usando una revisión diferente del SDK, no puedo decirlo realmente ya que no se mencionó la revisión del SDK en el post anterior.
  3. O podría ser tanto la 1 como la 2.

En cualquier caso, encontrará el directorio temporal .img en la siguiente ubicación:

SystemDrive \Users\ [nombre de usuario] \AppData\Local\Temp\AndroidEmulator

El nombre del archivo será similar al siguiente:

TMP19AD.tmp

Nota: - El nombre del archivo cambiará cada vez que ejecute el emulador. - Que el tamaño del archivo siempre será de 0bytes mientras el emulador esté funcionando. - Es más fácil trabajar en un dispositivo virtual a la vez cuando se accede a los archivos temporales .img. De lo contrario, se confunde qué archivo es para cada dispositivo virtual.

Para que los cambios sean permanentes, haga lo siguiente:

  1. Trabaja en un dispositivo virtual a la vez.
  2. Copiar el .tmp del directorio de AndroidEmulator a una ubicación temporal antes de salir del emulador.
  3. Cambia el nombre del archivo *.tmp por system.img.
  4. Copiar el archivo system.img en el directorio AVD de tu dispositivo virtual. Sobrescribiendo cualquier archivo system.img anterior.

He creado el siguiente archivo por lotes para hacer la copia.

system_copy.bat

@echo off
rem
rem system_copy.bat
rem
rem Command-line reference:
rem     system_copy [drive_letter] [account_username] [virtual_device's_name]
rem

rem
rem check to see if the user entered the parameters needed
rem
rem check for the drive letter
if [%1] == [] goto :error1
rem check for the account username
if [%2] == [] goto error2
rem check for the virtual device's name
if [%3] == [] goto error3

rem
rem set the paths for the tmp_path and main_avd_path
rem to use in the copying process
rem
:SetPaths
rem Grab current directory before we change it
rem this will be directory outside of the virtual device's directory
set main_avd_path="%cd%"

rem set the current location for the temp AVD .img files
set tmp_path=%1:\Users\%2\AppData\Local\Temp\AndroidEmulator

rem now we need to verify a few things

rem verify that the temp_path exist
if not exist %tmp_path% goto error4
rem verify that the temporary .img file exist
if not exist %tmp_path%\*.tmp goto error5

rem now we begin the copying of the system.img file
echo.
echo Copying the *.tmp file to the virtual device's avd directory as system.img.
echo.

copy %tmp_path%\*.tmp %main_avd_path%\%3%.avd\system.img /y >nul

rem check for any errors in copying the file
for %%e in (5 4 3 2 1) do if errorlevel %%e goto copyerror-%%e

if not errorlevel == 0 goto copyerror-0

rem show copy succes message
echo.
echo Copying is complete.
echo.
goto :EOF

rem beginning of the error messages
:error1
    echo.
    echo ERROR: System drive letter not specified.
    echo Please rerun this batch file and specify the system drive letter.
    echo.
    echo Command-line reference:
    echo    system_copy [drive_letter] [account_username] [virtual_device's_name]
    goto :EOF

:error2
    echo.
    echo ERROR: User account name not specified.
    echo Please rerun this batch file and specify the User account name.
    echo.
    echo Command-line reference:
    echo    system_copy [drive_letter] [account_username] [virtual_device's_name]
    goto :EOF

:error3
    echo.
    echo ERROR: Virtual device's name not specified.
    echo Please rerun this batch file and specify the AVD name.
    echo.
    echo Command-line reference:
    echo    system_copy [drive_letter] [account_username] [virtual_device's_name]
    goto :EOF

:error4
    echo.
    echo ERROR: AndroidEmulator folder '%tmp_path%' does not exist.
    echo Please verify that the AndroidEmulator folder has been created at '%tmp_path%' then restart this batch file.
    goto :EOF

:error5
    echo.
    echo ERROR: Temporary .img file does not exist.
    echo Check to see if the virtual device is running, then rerun this batch file.
    echo.
    echo Command-line reference:
    echo    system_copy [drive_letter] [account_username] [virtual_device's_name]
    goto :EOF

:copyerror-0
    echo.
    echo COPY ERROR:  There was an unknown copy error.
    echo.
    goto :EOF

:copyerror-1
    echo.
    echo COPY ERROR:  No files were found to copy.
    echo.
    goto :EOF

:copyerror-2
    echo.
    echo COPY ERROR:  The user pressed CTRL+C to terminate xcopy.
    echo.
    goto :EOF

:copyerror-3
    echo.
    echo COPY ERROR:  Initialization error occurred. There is not enough memory or disk space.
    echo.
    goto :EOF

:copyerror-4
    echo.
    echo COPY ERROR:  Disk write error occurred.
    echo.
    goto :EOF

:copyerror-5
    echo.
    echo COPY ERROR:  No files were found to copy.
    echo.
    goto :EOF

rem EOF

copie y pegue el código anterior en su editor de texto favorito y guárdelo como system_copy.bat.

Coloque este archivo por lotes en el directorio principal para el directorio avd del dispositivo virtual.

Para ejecutarlo, mientras se ejecuta el avd del dispositivo virtual:

  1. Abre un aviso de cmd
  2. Ir al directorio en el que se encuentra el archivo por lotes
  3. Ejecute el archivo por lotes con la siguiente sintaxis de comando:

sistema_copia [drive_letter] [nombre_de_cuenta] [nombre_del_dispositivo_virtual]

ejemplo:

 system_copy C "The WABBIT" Nexus_7

Eso es todo. Espero que esto ayude a otros.

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X