Sembra che ci siano diversi modi per avviare SDK Manager:
SDK Manager.exe nella radice dell'SDK di Android.
SDK Manager.exein sdk\tools\libdel SDK di Android.
Window -> Android SDK Manager menu in Eclipse
android.batin sdk\toolsdel SDK di Android.
Nel mio caso, sembra che android.batfallisca sulla linea:
for /f %%a in ('%java_exe% -jar lib\archquery.jar') do set swt_path=lib\%%a
Per quanto riguarda quello che sta facendo quella linea ... se corro manualmente: "[path_to_java]java" -jar lib\archquery.jar
Restituisce correttamente: x86_64
Ma quando il file batch esegue lo stesso comando, non so perché ma non riesce con il messaggio di errore:
Unable to access jarfile lib\archquery.jar
Quindi la variabile swt_pathviene impostata su una stringa vuota. Tutto si rompe da lì.
Il file batch imposta il valore corretto per la variabile java_exe. Altri hanno comunemente segnalato questo come un problema, ma quelle soluzioni alternative non erano rilevanti nel mio caso.
Le persone hanno raccomandato di commentare la riga del problema aggiungendo REM all'inizio di essa e aggiungendo una riga per impostare manualmente la swt_pathvariabile, che è una soluzione valida:
REM for /f %%a in ('%java_exe% -jar lib\archquery.jar') do set swt_path=lib\%%a
set swt_path=lib\x86
MA , il problema critico nel mio caso è che sta scegliendo di caricare un file jar dalla cartella lib\x86o dalla lib\x86_64cartella qui. Ad un certo punto, le cose si stavano confondendo tra l'errore del file BAT, un JDK a 32 bit e un SDK Android a 64 bit.
Quindi , la soluzione nel mio caso era:
- Disinstallare TUTTE le versioni di Java
- Installa JDK
- È possibile utilizzare l'SDK Android a 32 bit e installare il JDK a 32 bit
- Oppure usa l'SDK Android a 64 bit e installa il JDK a 64 bit
- Ma il "testimone" del JDK dovrebbe corrispondere all'SDK di Android. Sembra che 32 bit o 64 bit funzioneranno su un computer a 64 bit, FINO A QUANTO il testimone JDK corrisponde al testimone SDK Android.
Modifica "android.bat"
Se si utilizza Android SDK / JDK a 32 bit, utilizzare lib\x86:
REM for /f %%a in ('%java_exe% -jar lib\archquery.jar') do set swt_path=lib\%%a
set swt_path=lib\x86
Se si utilizza Android SDK / JDK a 64 bit, utilizzare 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
Dopo averlo fatto, posso eseguire correttamente l'SDK Manager eseguendo android.bato dal menu Eclipse (ma non eseguendo direttamente nessuno dei SDK Manager.exefile).