Không thể cài đặt sdkmanager trong windows 10


8

Tôi đang cố gắng cài đặt trình quản lý sdk một mình để sử dụng nó với Eclipse. Tôi đã tải xuống tệp zip được cung cấp bởi google -

lệnhlinetools-win-6200805_latest.zip

từ https://developer.android.com/studio

Nhưng khi tôi cố chạy tệp sdkmanager.bat thì nó không chạy và tôi gặp các lỗi sau:

Error: could not find or load main class com.android.sdklib.tool.sdkmanager.SdkManagerCli

Xin lưu ý rằng đường dẫn jdk của Java được đặt đúng và không có lỗi liên quan đến điều đó.

Nếu bạn quan tâm để xem tập tin bat, đây là:

@if "%DEBUG%" == "" @echo off
@rem ##########################################################################
@rem
@rem  sdkmanager startup script for Windows
@rem
@rem ##########################################################################

@rem Set local scope for the variables with windows NT shell
if "%OS%"=="Windows_NT" setlocal

set DIRNAME=%~dp0
if "%DIRNAME%" == "" set DIRNAME=.
set APP_BASE_NAME=%~n0
set APP_HOME=%DIRNAME%..

@rem Add default JVM options here. You can also use JAVA_OPTS and SDKMANAGER_OPTS to pass JVM options to this script.
set DEFAULT_JVM_OPTS=-Dcom.android.sdklib.toolsdir=%~dp0\..

@rem Find java.exe
if defined JAVA_HOME goto findJavaFromJavaHome

set JAVA_EXE=java.exe
%JAVA_EXE% -version >NUL 2>&1
if "%ERRORLEVEL%" == "0" goto init

echo.
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
echo.
echo Please set the JAVA_HOME variable in your environment to match the
echo location of your Java installation.

goto fail

:findJavaFromJavaHome
set JAVA_HOME=%JAVA_HOME:"=%
@rem set JAVA_EXE=C:/Program Files/Java/jdk1.8.0_241/bin/java.exe
set JAVA_EXE=%JAVA_HOME%/bin/java.exe

if exist "%JAVA_EXE%" goto init

echo.
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
echo.
echo Please set the JAVA_HOME variable in your environment to match the
echo location of your Java installation.

goto fail

:init
@rem Get command-line arguments, handling Windows variants

if not "%OS%" == "Windows_NT" goto win9xME_args

:win9xME_args
@rem Slurp the command line arguments.
set CMD_LINE_ARGS=
set _SKIP=2

:win9xME_args_slurp
if "x%~1" == "x" goto execute

set CMD_LINE_ARGS=%*

:execute
@rem Setup the command line

set CLASSPATH=%APP_HOME%\lib\/sdkmanager-classpath.jar

@rem Execute sdkmanager
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %SDKMANAGER_OPTS%  -classpath "%CLASSPATH%" com.android.sdklib.tool.sdkmanager.SdkManagerCli %CMD_LINE_ARGS%

:end
@rem End local scope for the variables with windows NT shell
if "%ERRORLEVEL%"=="0" goto mainEnd

:fail
rem Set variable SDKMANAGER_EXIT_CONSOLE if you need the _script_ return code instead of
rem the _cmd.exe /c_ return code!
if  not "" == "%SDKMANAGER_EXIT_CONSOLE%" exit 1
exit /b 1

:mainEnd
if "%OS%"=="Windows_NT" endlocal

:omega

Bất kỳ trợ giúp đánh giá cao

Câu trả lời:


9

TL; DR;

  • sao chép nội dung của tools/lib/_đểtools/lib
  • chạy sdkmanagercác lệnh với --sdk_roottham số.

Chi tiết

Trong dòng 66 của sdkmanager.bat, CLASSPATH được định nghĩa là như thế này

set CLASSPATH=%APP_HOME%\lib\/sdkmanager-classpath.jar

và bên trong thư mục lib sdkmanager-classpath.jar, thật kỳ lạ, dưới một thư mục con được gọi -.

Tôi đã cố gắng thay đổi đường dẫn trong tệp bó nhưng nó không hoạt động, vì vậy tôi đã sao chép các tệp từ ..../tools/lib/_sang ..../tools/libvà lỗi biến mất. Tuy nhiên, một cảnh báo đã xuất hiện:

Warning: Could not create settings
java.lang.IllegalArgumentException
        at com.android.sdklib.tool.sdkmanager.SdkManagerCliSettings.<init>(SdkManagerCliSettings.java:428)
        at com.android.sdklib.tool.sdkmanager.SdkManagerCliSettings.createSettings(SdkManagerCliSettings.java:152)
        at com.android.sdklib.tool.sdkmanager.SdkManagerCliSettings.createSettings(SdkManagerCliSettings.java:134)
        at com.android.sdklib.tool.sdkmanager.SdkManagerCli.main(SdkManagerCli.java:57)
        at com.android.sdklib.tool.sdkmanager.SdkManagerCli.main(SdkManagerCli.java:48)

Theo câu trả lời này , tôi đã cố gắng vượt qua --sdk_roottham số hoạt động mà không gặp vấn đề gì:

sdkmanager --sdk_root=%ANDROID_HOME% --list
# %ANDROID_HOME% is the environment variable that contains the path of android
# sdk installation. Typically, would be:
# `C:\Users\<USERNAME>\AppData\Local\Android\Sdk\tools`

PS: thậm chí tôi đã có thể giải quyết điều này, tôi sẽ nói rằng câu trả lời này là một cách giải quyết vì tài liệu không đề cập bất cứ điều gì về việc sao chép tệp vào đường dẫn khác


1
Thực sự kỳ lạ tại sao chúng ta cần phải làm điều này - và đặc biệt là chúng ta có thể biết mà không cần ai nói với chúng ta ...!
TheStoryCoder

Tôi nghĩ rằng đây là một lỗi trong việc đóng gói các công cụ dòng lệnh của windows. Phiên bản Mac như chúng trong thư mục chính xác. Ngoài ra, các mục trong MANIFEST.MF bên trong sdkmanager-classpath.jar đều liên quan đến tools \ lib (vì vậy jar cũng phải nằm trong thư mục đó).
chrish

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.