Parece que hay varias formas de iniciar el SDK Manager:
SDK Manager.exe
en la raíz del SDK de Android.
SDK Manager.exe
en sdk\tools\lib
el SDK de Android.
Window -> Android SDK Manager
menú en Eclipse
android.bat
en sdk\tools
el SDK de Android.
En mi caso, parece que android.bat
falla en la línea:
for /f %%a in ('%java_exe% -jar lib\archquery.jar') do set swt_path=lib\%%a
En cuanto a lo que está haciendo esa línea ... si ejecuto manualmente: "[path_to_java]java" -jar lib\archquery.jar
Devuelve con éxito: x86_64
Pero cuando el archivo por lotes ejecuta ese mismo comando, no sé por qué pero falla con el mensaje de error:
Unable to access jarfile lib\archquery.jar
Entonces la variable swt_path
se establece en una cadena vacía. Todo se rompe a partir de ahí.
El archivo por lotes establece el valor correcto para la variable java_exe
. Otros han informado comúnmente de esto como un problema, pero esas soluciones no fueron relevantes en mi caso.
La gente ha recomendado comentar la línea del problema agregando REM al comienzo y agregando una línea para establecer manualmente la swt_path
variable, que es una solución válida:
REM for /f %%a in ('%java_exe% -jar lib\archquery.jar') do set swt_path=lib\%%a
set swt_path=lib\x86
PERO , el problema crítico en mi caso es que está eligiendo cargar un archivo jar desde lib\x86
olib\x86_64
carpeta aquí. En algún momento, las cosas se confundían entre el error del archivo BAT, un JDK de 32 bits y un SDK de Android de 64 bits.
Entonces , la solución en mi caso fue:
- Desinstale TODAS las versiones de Java
- Instale el JDK
- Puede usar el SDK de Android de 32 bits e instalar el JDK de 32 bits
- O use el SDK de Android de 64 bits e instale el JDK de 64 bits
- Pero el "bitness" del JDK debería coincidir con el SDK de Android. Parece que cualquiera de los de 32 bits o de 64 bits funcionará en una computadora de 64 bits, SIEMPRE SI el bit JDK coincide con el bit SDK de Android.
Editar "android.bat"
Si usa el SDK / JDK de Android de 32 bits, use lib\x86
:
REM for /f %%a in ('%java_exe% -jar lib\archquery.jar') do set swt_path=lib\%%a
set swt_path=lib\x86
Si usa el SDK / JDK de Android de 64 bits, use lib\x86_64
:
REM for /f %%a in ('%java_exe% -jar lib\archquery.jar') do set swt_path=lib\%%a
set swt_path=lib\x86_64
Después de hacer esto, puedo ejecutar con éxito el SDK Manager ejecutando android.bat
o desde el menú Eclipse (pero aún no ejecutando ninguno de los SDK Manager.exe
archivos directamente).