2012-06-07 11 views
14

Problema:No se puede acceder jarfile lib archquery.jar

  • No se puede abrir el Administrador de SDK (Parpadea sólo por un segundo)
  • Sin acumulación ruta de destino en Eclipse

Trayectos:

Android SDK: C:\Program Files\Android\android-sdk 
JDK used for android: C:\Program Files\Java\jdk1.7.0_04 (There are other JDKs also in dir Java) 

variables de entorno:

ANDROID_SDK_HOME: C:\Program Files\Android\android-sdk 
JAVA_HOME: C:\Program Files\Java\jdk1.7.0_04;C:\Program Files (x86)\Java\jre1.6.0;C:\Program Files\Java\jre7; 
System Path: C:\Program Files\Java\jdk1.7.0_04\bin;C:\Program Files\Java\jdk1.7.0_01\bin;C:\Program Files (x86)\Java\jdk1.5.0\bin;C:\Program Files\Android\android-sdk\tools\ 

Errores:

SDK Manager on cmd 
Failed to execute tools\android.bat. 
The system cannot find the file specified 

Android.bat on cmd 
Unable to access jar file lib\archquery.jar 
Invalid path 

find_java on cmd 
nothing returned 

Respuesta

25

que tenía un problema similar - que tenía que editar el android.bat (y traceview .bat cuando lo necesitaba)

en android.bat look para

for /f %%a in ('%java_exe% -jar %frameworkdir%archquery.jar') do set swt_path=%frameworkdir%%%a 

reemplazar con

set swt_path=lib\x86 
+5

OH DIOS GRACIAS ... estado intentando que el SDK de Android funcione durante más de una hora ... –

+10

Si no funciona, intente 'establecer swt_path = lib \ x86_64'. – Sawny

8

tu caso es distinto, pero además a la edición android.bat, tal como se describe en la respuesta anterior, todavía no podía obtener el Administrador de SDK para ejecutar en Windows 8 de 64 bits, hasta que yo primero:

  • desinstalado TODAS las versiones de Java
  • reiniciado *
  • instalarse sólo el X86 JDK (incluyendo la opción JRE Pública en el instalador)

Había probado todas estas cosas y más con anterioridad * sin necesidad de reiniciar, y este fue el único forma en que alguna vez obtuve el Administrador de SDK para ejecutar. Espero que esta información te salve de la total frustración y el tiempo perdido que experimenté. Qué dolor en el trasero solo por sacar las herramientas de la caja. Experiencia horrible

yo hubiera respondido como un comentario a la respuesta anterior, pero al parecer no tengo representante suficiente para hacer eso: respuesta más completa a continuación: https://meta.stackexchange.com/questions/25725/how-do-you-comment-on-a-specific-answer

EDITAR. (No creo que reiniciar tenía nada que ver con ello.)

Parece que hay varias formas de lanzar el SDK Manager:

  1. SDK Manager.exe en la raíz del SDK de Android.
  2. SDK Manager.exe en sdk\tools\lib del SDK de Android.Menú
  3. Window -> Android SDK Manager en Eclipse
  4. android.bat en sdk\tools del 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 la línea ... si me quedo 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 

Así que la variable swt_path se establece en una cadena vacía. Todo se rompe desde allí.

El archivo por lotes establece el valor correcto para la variable java_exe. Otros han informado comúnmente esto como un problema, pero esas soluciones no fueron relevantes en mi caso.

personas han recomendado comentando la línea problema mediante la adición de REM al comienzo de la misma, y ​​la adición de una línea que configurar manualmente la variable swt_path, 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, la El problema fundamental en mi caso es que está eligiendo cargar un archivo jar desde la carpeta lib\x86 o lib\x86_64 aquí. En algún momento, las cosas se confundieron entre el error del archivo BAT, un JDK de 32 bits y un SDK de Android de 64 bits.

SO, la solución en mi caso fue:

  1. desinstalar todas las versiones de Java
  2. Instalar el JDK
    • Puede utilizar el SDK de Android 32 bits e instalar el 32-bit JDK
    • O utilice el SDK de Android de 64 bits e instale el JDK de 64 bits
    • Pero el "bitne ss "del JDK debe coincidir con el SDK de Android. Parece que cualquiera de 32 bits o de 64 bits funcionará en una computadora de 64 bits, MIENTRAS JDK bitness coincida con la bitness de Android SDK.
  3. Editar "android.bat"

    • Si se utiliza el SDK Android 32-bit/JDK, utilice 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 se utiliza el SDK de 64 bits Android/JDK, utilice 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 Administrador de SDK ejecutando android.bat, o desde el menú de Eclipse (pero aún no ejecutando ninguno de los archivos SDK Manager.exe directamente).

3

En Windows 7, al menos, un bucle 'FOR' de lote, al ejecutar un comando para la lista, no utiliza el directorio de trabajo actual, sino el directorio raíz. En este caso, el comando es '% java_exe% -jar lib \ archquery.jar'. Sin embargo, se está ejecutando efectivamente desde la raíz, p. 'DO:\'. Esto se puede ver por ti mismo con esta sencilla prueba desde la línea de comandos:

for /f %a in ('CD') do echo %a 

Así que el comando para ejecutar archquery está buscando el frasco relativa al directorio raíz, no con el directorio ADT, y por lo tanto no puede ser encontrado.

+1

Arreglé mi android.bar para usar la ruta completa a archquery, aprovechando la variable% work_dir% configurada anteriormente en el archivo de proceso por lotes: para/f %% a in ('% java_exe% -jar% work_dir% \ lib \ archquery.jar ') establecer swt_path = lib \ %% a – Trinition

1

Este cambio a android.bat (a continuación) me solucionó el problema. Puedo lanzar el administrador de SDK desde Eclipse ahora también.

for /f "delims=" %%a in ('"%java_exe%" -jar %~dp0\lib\archquery.jar') do set swt_path=lib\%%a 

Ver What does %~dp0 mean, and how does it work?

2

tuve problema similar y esta es la forma en que se resuelve.

  1. abierto android.bat archivo desde \android-sdk-windows\tools en un editor.

  2. encontrar la línea

    for /f "delims=" %%a in ('"%java_exe%" -jar lib\archquery.jar') do set swt_path=lib\%%a 
    

    y añadir rem delante de esta línea.

  3. En la línea siguiente, agregue set swt_path=lib\x86 (si está utilizando un sistema de 32 bits) o set swt_path=lib\x86_64 (si está utilizando un sistema de 64 bits).

  4. Guarde el archivo. Cierre el cmd si tiene uno abierto. Navega hasta android-sdk-windows\tools\ y ejecuta Android. Esto debería abrir el administrador de SDK. Pero asegúrese de tener JAVA_HOME definido en sus variables de entorno y debe apuntar a JDK a casa.

0

Me fijo que mediante la sustitución de:

for /f "delims=" %%a in ('"%java_exe%" -jar lib\archquery.jar') do set swt_path=lib\%%a 

con

REM for /f "delims=" %%a in ('"%java_exe%" -jar lib\archquery.jar') do set swt_path=lib\%%a 
set swt_path="lib\x86_64" 

Nota que solía " para la variable swt_path.

Espero que pueda ayudar a alguien más.

0

Al agregar una variable de entorno llamada "ANDROID_SWT" que apunta al directorio que contiene swt.jar, esto funcionó para mí. Parece una mejor opción que modificar la secuencia de comandos.

Cuestiones relacionadas