Sembra che ci siano diversi modi per avviare SDK Manager:
SDK Manager.exe
nella radice dell'SDK di Android.
SDK Manager.exe
in sdk\tools\lib
del SDK di Android.
Window -> Android SDK Manager
menu in Eclipse
android.bat
in sdk\tools
del SDK di Android.
Nel mio caso, sembra che android.bat
fallisca 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_path
viene 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_path
variabile, 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\x86
o dalla lib\x86_64
cartella 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.bat
o dal menu Eclipse (ma non eseguendo direttamente nessuno dei SDK Manager.exe
file).