Android Studio在不使用sdkmanager的情况下安装。
Android Studio在不使用sdkmanager的情况下安装。
我一直在使用macOS 10.15.3上的Flutter进行编程,针对的是iOS设备。今天我也尝试安装了Android Studio,希望能够扩展一下。安装过程没有出现错误,但是在Library/Android/sdk/
目录下没有tools
子目录,这是一个问题,因为应该在Library/Android/sdk/tools/bin
目录中找到sdkmanager
。
我注意到这一点是因为运行flutter doctor
时出现以下错误信息:
✗ Android license status unknown. Try re-installing or updating your Android SDK Manager. See https://developer.android.com/studio/#downloads or visit https://flutter.dev/setup/#android-setup for detailed instructions.
我尝试重新安装Android Studio(没有任何变化)。其他在线发布的解决方案提到了Java版本的问题,所以我将JRE从1.7升级到1.8,并重新安装了Android Studio(没有任何变化),然后将JDK升级到最新版本(Java版本现在是11.0.6),并再次尝试安装Android Studio(没有任何变化)。在此过程中,我还将Flutter升级到了v1.12.13+hotfix.8,但是这个错误依然存在。
如果我输入flutter doctor --android-licenses
,我得到以下信息:
Android sdkmanager tool not found (/Users/macuser/Library/Android/sdk/tools/bin/sdkmanager). Try re-installing or updating your Android SDK, visit https://flutter.dev/setup/#android-setup for detailed instructions.
这是我首次注意到我缺少Android Studio的一部分。
我尝试通过自己创建tools/bin
子目录,然后将sdkmanager
从插件的Library/Android/sdk/cmdline-tools/latest/bin
复制到我的新Library/Android/sdk/tools/bin
中来进行欺骗。然而,这并没有欺骗Flutter。运行flutter doctor --android-licenses
会导致以下错误信息:
A newer version of the Android SDK is required. To update, run: /Users/macuser/Library/Android/sdk/tools/bin/sdkmanager --update
这是错误的,因为Android SDK已经是最新的。
有人知道为什么Android Studio一直缺少tools/bin
子目录和其中的好东西吗?谢谢,如果我忽视了一些基本的东西,还请原谅。
问题是在Java 11(或9和10)中,JDK中不包含jaxb库,因此Android Studio的sdkmanager无法读取licenses xml文件。
如果你使用的是Java 11,你需要在classpath中包含这些库,你可以按照这里发布的说明进行操作(在Windows 10中对我有效)。
https://medium.com//flutter-android-sdkmanager-update-with-jdk-12-ad8098165472
最后一步是不必要的。在包含了classpath行之后,运行flutter doctor命令,一切应该正常。
我在我的设备上解决了这个问题,以下是具体的步骤:
1. 运行命令:flutter doctor --android-licenses -v
2. 我收到了以下提示信息:
$ flutter doctor --android-licenses -v Android sdkmanager tool not
found (/Users/juarse1/Library/Android/sdk/tools/bin/sdkmanager). Try
re-installing or updating your Android SDK, visit
https://flutter.dev/setup/#android-setup for detailed instructions.
throwToolExit (package:flutter_tools/src/base/common.dart:28:3)
AndroidLicenseValidator.runLicenseManager (package:flutter_tools/src/android/android_workflow.dart:311:7)
Doctor.diagnose (package:flutter_tools/src/doctor.dart:243:38)
这是因为Android SDK无法找到命令工具,但是需要强制从过时的软件包中获取,所以需要执行以下步骤:
3. 打开Android Studio -> Preferences -> System Settings -> Android SDK -> SDK Tools部分
4. 取消底部的"隐藏过时的软件包"选项
5. 确保这两个选项都被选中:
Android SDK Platform-Tools Android SDK Tools (Obsolete)
6. 关闭Android Studio
7. 再次运行命令:flutter doctor --android-licenses,问题应该已解决!
通过以上步骤,我成功解决了(Android Studio installs without sdkmanager)这个问题。
问题原因:最新版本的Android SDK将“Android SDK tools”包重命名为“Android-SDK command line tools”。但是当前稳定版本的Flutter SDK(v1.12.13+hotfix.8)与此更改不兼容,会显示错误消息。
解决方法:取消“SDK tools”页面上的“Hide Obsolete Packages”复选框,然后安装“Android SDK Tools (Obsolete) 26.1.1”。如果发现有任何遗漏的内容,请阅读以下详细说明。
步骤如下:
1. 安装Android Studio的稳定版本。
2. 打开Android Studio。
3. 打开SDK Manager。
4. 确保已下载所有所需的内容。
5. 检查家目录下是否有.bash_profile文件,如果有,则打开它;如果没有,则创建一个。将以下内容添加到该文件中:
export PATH="$PATH:~/development/sdk/flutter/bin" export ANDROID_HOME="/Users/darish/development/sdk/android" export PATH="$PATH:$ANDROID_HOME/platform-tools"
6. 完成上述所有步骤后,运行flutter doctor --android-licenses并接受所有许可。
flutter doctor --android-licenses
7. 现在运行flutter doctor以查看是否一切正常。如果需要进一步帮助,请告诉我。
解决方法2:在我的情况下,按相反的顺序安装“Android-SDK command line tools”。
注意:本文中提到的路径和版本仅供参考,实际路径和版本可能因个人设置和系统差异而有所不同。