SDKmanager:警告:无法创建设置。java.lang.IllegalArgumentException

G10*_*nn1 12 java ubuntu android

我正在尝试在我的 Ubuntu 上安装 androidSDK,但是当我尝试在 tools/bin/sdkmanager 文件夹上运行 SDK 管理器时,我收到以下消息:

我的 Ubuntu 是最近安装的,除了 Java 8 和 Android Studio 外,它仍然没有任何内容。

我的 SDK 文件夹是默认的 ~/Android/Sdk。

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)
Usage:
  sdkmanager [--uninstall] [<common args>] [--package_file=<file>] [<packages>...]
  sdkmanager --update [<common args>]
  sdkmanager --list [<common args>]
  sdkmanager --licenses [<common args>]
  sdkmanager --version

With --install (optional), installs or updates packages.
    By default, the listed packages are installed or (if already installed)
    updated to the latest version.
With --uninstall, uninstall the listed packages.

    <package> is a sdk-style path (e.g. "build-tools;23.0.0" or
             "platforms;android-23").
    <package-file> is a text file where each line is a sdk-style path
                   of a package to install or uninstall.
    Multiple --package_file arguments may be specified in combination
    with explicit paths.

With --update, all installed packages are updated to the latest version.

With --list, all installed and available packages are printed out.

With --licenses, show and offer the option to accept licenses for all
     available packages that have not already been accepted.

With --version, prints the current version of sdkmanager.

Common Arguments:
    --sdk_root=<sdkRootPath>: Use the specified SDK root instead of the SDK
                              containing this tool

    --channel=<channelId>: Include packages in channels up to <channelId>.
                           Common channels are:
                           0 (Stable), 1 (Beta), 2 (Dev), and 3 (Canary).

    --include_obsolete: With --list, show obsolete packages in the
                        package listing. With --update, update obsolete
                        packages as well as non-obsolete.

    --no_https: Force all connections to use http rather than https.

    --proxy=<http | socks>: Connect via a proxy of the given type.

    --proxy_host=<IP or DNS address>: IP or DNS address of the proxy to use.

    --proxy_port=<port #>: Proxy port to connect to.

    --verbose: Enable verbose output.

* If the env var REPO_OS_OVERRIDE is set to "windows",
  "macosx", or "linux", packages will be downloaded for that OS. ```
Run Code Online (Sandbox Code Playgroud)

G10*_*nn1 22

在弄乱控制台之后,我想我发现了发生了什么。显然,SDK 定位 SDK 安装文件夹的方式存在错误。

所以我需要做的就是在导出路径后使用--sdk_root=${ANDROID_HOME}指定它export ANDROID_HOME=~/Android/Sdk

所以完整的命令是yes | ~/Android/Sdk/tools/bin/sdkmanager --sdk_root=${ANDROID_HOME} --version

从另一篇文章中得到了解决方案:Android 命令行工具 sdkmanager 始终显示:警告:无法创建设置


小智 11

Android SDK 工具现在位于以下位置:“ android_sdk/cmdline-tools/version/bin/ ”;

因此,要在Windows 中解决此问题(在其他操作系统中也可以复制),请执行以下操作:

  1. 在您的android_sdk文件夹中,创建文件夹:cmdline-tools并在其中创建另一个文件夹:version将所有文件“/bin /lib NOTICE 和 sources.properties”文件提取/放入此version文件夹中。

  2. 设置ANDROID_HOME到您的android_sdk文件夹。

  3. 添加到您的系统路径: android_sdk\cmdlineAndroidSDK\cmdline-tools\version\bin\

同样地,把你的Android SDK平台工具的内部android_sdk/platform-tools/,并添加相应PATHENVIRONMENTAL VARIABLESSystem Variables