未找到 Android sdkmanager 工具
Posted
技术标签:
【中文标题】未找到 Android sdkmanager 工具【英文标题】:Android sdkmanager tool not found 【发布时间】:2019-02-14 19:35:10 【问题描述】:我这周刚开始使用 Ubuntu 18.0 LTS,从 Windows 切换过来,想重新安装 android Studio 和 Flutter。我按照所说的所有步骤安装了 Android Studio,并且它与所有 SDK 都可以正常工作。但是,当我想安装 Flutter 时,它给出了异常:
Doctor summary (to see all details, run flutter doctor -v):
Unhandled exception:
Exception: Android sdkmanager tool not found (/usr/lib/android-sdk/tools/bin/sdkmanager).
Try re-installing or updating your Android SDK,
visit https://flutter.io/setup/#android-setup for detailed instructions.
如果需要,请询问堆栈跟踪。
我能找到的最接近的问题是:How to install SDK manager on linux ubuntu 16.04?,但我无法真正理解如何操作这些说明。我可能需要您在说明中非常清楚,因为我是 linux 平台的新手。
工具/package.xml:
<ns2:repository xmlns:ns2="http://schemas.android.com/repository/android/common/01"
xmlns:ns3="http://schemas.android.com/sdk/android/repo/addon2/01"
xmlns:ns4="http://schemas.android.com/sdk/android/repo/sys-img2/01"
xmlns:ns5="http://schemas.android.com/repository/android/generic/01"
xmlns:ns6="http://schemas.android.com/sdk/android/repo/repository2/01">
<license id="apache-2.0" type="text">Please refer to Apache v2.0 license</license>
<localPackage path="tools" obsolete="false">
<type-details xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:type="ns5:genericDetailsType"/>
<revision>
<major>25</major>
<minor>0</minor>
<micro>0</micro>
</revision>
<display-name>Android SDK Tools</display-name>
<uses-license ref="apache-2.0"/>
<dependencies>
<dependency path="platform-tools">
<min-revision>
<major>20</major>
</min-revision>
</dependency>
</dependencies>
</localPackage>
</ns2:repository>
Flutter Doctor -v 输出:
[✓] Flutter (Channel beta, v0.7.3, on Linux, locale en_IN)
• Flutter version 0.7.3 at /home/andi/Downloads/flutter
• Framework revision 3b309bda07 (13 days ago), 2018-08-28 12:39:24 -0700
• Engine revision af42b6dc95
• Dart version 2.1.0-dev.1.0.flutter-ccb16f7282
[!] Android toolchain - develop for Android devices (Android SDK 28.0.2)
• Android SDK at /home/andi/Android/Sdk
• Android NDK location not configured (optional; useful for native profiling support)
• Platform android-28, build-tools 28.0.2
• ANDROID_HOME = /home/andi/Android/Sdk
• Java binary at: /home/andi/Downloads/android-studio-ide-173.4907809-linux/android-studio/jre/bin/java
• Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1024-b01)
! Some Android licenses not accepted. To resolve this, run: flutter doctor --android-licenses
[✓] Android Studio (version 3.1)
• Android Studio at /home/andi/Downloads/android-studio-ide-173.4907809-linux/android-studio
• Flutter plugin version 28.0.1
• Dart plugin version 173.4700
• Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1024-b01)
[!] Connected devices
! No devices available
! Doctor found issues in 2 categories.
【问题讨论】:
【参考方案1】:在我的 KUbuntu 上安装后,我遇到了这个问题。
您需要打开 AndroidStudio 然后转到 Tools -> SDK Manager 然后转到 SDK Tools 选项卡,取消选中选项Hide Obsolete Packages
您将看到 Android SDK Tools (Obsolete) 选项,选中该选项并继续下载和安装过程。
【讨论】:
我下载了android-studio-ide-192.6241897-linux.tar.gz和flutter_linux_v1.12.13+hotfix.8-stable.tar.xz。我认为这是 Android Studio 的一个错误。 这对我有用。非常感谢;我正准备放弃使用 Ubuntu 的 Flutter。 已在 Linux Mint 19 上解决!! 已在 MacOs Catalina 中解决。。谢谢 已在 MacOs Big Sur 中解决。谢谢!【参考方案2】:我正在使用 Manjaro Linux。在设置我的ANDROID_HOME
并从 Android Studio 安装 Android SDK 命令行工具(最新)之后。
然后跑了:
flutter doctor --android-licenses
$ mkdir ~/Android/Sdk/tools/bin
并创建了指向真实路径的链接
$ ln -s ~/Android/Sdk/cmdline-tools/latest/bin/sdkmanager ~/Android/Sdk/tools/bin/sdkmanager
再跑一遍,全部接受
$ flutter doctor --android-licenses
flutter doctor
【讨论】:
这应该是公认的答案,因为它使用最新的 SDK 工具而不是安装旧版本。 这是更好更正确的答案。您也不再需要创建符号链接。 Flutter 自动找到cmdline-tools
下的sdkmanager。【参考方案3】:
我在 Ubuntu 上安装时遇到了这个问题。您需要将环境变量 ANDROID_HOME 设置为您安装 android sdk 的路径才能使 Flutter 正常工作。
因此,假设您在主目录中安装了 SDK,请打开终端并发出此命令
ANDROID_HOME=~/Android-SDK flutter doctor
如果可行,则将 env 变量添加到您的配置文件以使其持久化,方法是添加
export ANDROID_HOME=~/Android-SDK
到您的 ~/.profile 脚本,然后重新登录到 Ubuntu。
显然,如果您将 android sdk 安装在不同的目录中,您只需将 ~/ 替换为该目录,例如,如果您将 sdk 安装到 /opt,那么命令将是 ANDROID_HOME=/opt/Android-SDK 扑医生
检查了我的 android sdk + flutter 设置后,我还最终将以下内容添加到了我的路径中
~/Android-SDK/platform-tools
您可以在弄乱您的个人资料之前通过终端中的以下命令进行测试
PATH=$PATH:~/Android-SDK/platform-tools ANDROID_HOME=~/Android-SDK flutter doctor
再次将 ~/Android-SDK 更改为您安装 android SDK 的位置。如果可行,请相应地更改您的个人资料并重新登录 Ubuntu。
【讨论】:
不,第一个命令不起作用。如果有帮助,我按照***.com/questions/26256279/… 设置变量。 @AdityaNigam 我发现设置颤振可以很好地与 android sdk a pita 配合使用,而且我对 linux 有经验,所以不要绝望。我在答案中添加了一些新内容,请尝试一下。 @AdityaNigam 看起来您在其他链接中遵循的那些说明告诉您将导出放在 .bashrc 中,这没问题,但只会影响 bash cli shell,所以如果您从cli,不错。但是如果你从 gui 运行,你可能会发现问题,而 .profile 脚本为其他 shell 设置环境,所以我会(就像我一样)建议在你的 .profile 脚本中设置你的环境。 所以我做了 gedit ~/.profile 并最后添加了 export ANDROID_HOME="/usr/lib/android-sdk/" 。另外,你想让我把flutter sdk文件夹放到同一个位置吗?因为它仍然说 flutter: command not found @AdityaNigam 只要您将环境设置为指向它,您的颤动就可以在任何地方,并且您的颤动医生命令正在运行这一事实表明您有,所以保持原样。我在 .profile 脚本中设置的关于 android 的唯一内容是 export PATH="$HOME/Android-SDK/platform-tools":$HOME/android-studio/bin:"$PATH"和 export ANDROID_HOME=$HOME/Android-SDK,虽然这是很久以前的事了,但我记得这就是我必须要做的。我停止使用颤振,更喜欢普通的 java sdk,所以我猜事情可能已经改变了。【参考方案4】:如果您在接受 SDK 许可时遇到此错误。
➜ ~ flutter doctor --android-licenses
Android sdkmanager not found. Update to the latest Android SDK and ensure that the cmdline-tools are installed
to resolve this
最初的 android-sdk 的结构是:
android-sdk
├── build-tools
│ ├── 29.0.3 -> debian
│ └── debian
│ └── lib
├── cmdline-tools
│ ├── tools
│ │ ├── bin
我能够配置 android 许可证的方式是通过将“工具”更改为“最新”来更改 android-sdk 目录的结构
android-sdk
├── build-tools
│ ├── 29.0.3 -> debian
│ └── debian
│ └── lib
├── cmdline-tools
│ ├── latest
│ │ ├── bin
| | |
【讨论】:
以上是关于未找到 Android sdkmanager 工具的主要内容,如果未能解决你的问题,请参考以下文章
mac android studio怎么更新sdk manager
Sdkmanager“错误:无法在 Windows 上找到或加载主类 com.android.sdklib.tool.sdkmanager.SdkManagerCli”
返回的工具/android 找不到 sdkmanager.jar
Android 命令行工具 sdkmanager 总是显示:警告:无法创建设置
sh Android - 安装依赖项,使用sdkmanager / android终端工具在linux / ci / other上构建android项目
sh Android - 安装依赖项,使用sdkmanager / android终端工具在linux / ci / other上构建android项目