Parece haver várias maneiras de iniciar o SDK Manager:
SDK Manager.exe
na raiz do Android SDK.
SDK Manager.exe
no sdk\tools\lib
SDK do Android.
Window -> Android SDK Manager
menu no Eclipse
android.bat
no sdk\tools
SDK do Android.
No meu caso, parece que android.bat
falha na linha:
for /f %%a in ('%java_exe% -jar lib\archquery.jar') do set swt_path=lib\%%a
Tanto quanto o que essa linha está fazendo ... se eu executar manualmente: "[path_to_java]java" -jar lib\archquery.jar
Retorna com sucesso: x86_64
Mas quando o arquivo em lotes executa o mesmo comando, não sei por que, mas falha com a mensagem de erro:
Unable to access jarfile lib\archquery.jar
Portanto, a variável swt_path
é definida como uma sequência vazia. Tudo quebra a partir daí.
O arquivo em lotes define o valor correto para a variável java_exe
. Outros geralmente relataram isso como um problema, mas essas soluções alternativas não eram relevantes no meu caso.
As pessoas recomendaram comentar a linha do problema adicionando REM ao início e adicionando uma linha para definir manualmente a swt_path
variável, que é uma solução válida:
REM for /f %%a in ('%java_exe% -jar lib\archquery.jar') do set swt_path=lib\%%a
set swt_path=lib\x86
MAS , o problema crítico no meu caso é que está escolhendo carregar um arquivo jar a partir lib\x86
da lib\x86_64
pasta ou aqui. Em algum momento, as coisas estavam ficando confusas entre o erro do arquivo BAT, um JDK de 32 bits e um SDK do Android de 64 bits.
Portanto , a solução alternativa no meu caso foi:
- Desinstale TODAS as versões do Java
- Instale o JDK
- Você pode usar o SDK do Android de 32 bits e instalar o JDK de 32 bits
- Ou use o Android SDK de 64 bits e instale o JDK de 64 bits
- Mas a "testemunha" do JDK deve corresponder ao SDK do Android. Parece que o de 32 ou o de 64 bits funcionará em um computador de 64 bits, contanto que a versão JDK corresponda à versão Android SDK.
Edite "android.bat"
Se você estiver usando o Android SDK / JDK 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
Se você estiver usando o Android SDK / JDK 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
Depois disso, posso executar o SDK Manager com êxito executando android.bat
ou no menu Eclipse (mas ainda não executando nenhum dos SDK Manager.exe
arquivos diretamente).