Android SDK工具+Flutter:正确的目录结构和环境变量

Android SDK tools + Flutter: correct directory structure and environment variables

我正忙着 Flutter to find the SDK command-line tools。我正在尝试通过下载 link 处提供的 zip 并在 ${HOME}/Android 中解压缩来安装后者。这会生成一个 tools 目录,如果我 运行 可执行文件

${HOME}/Android/tools/bin/sdkmanager

直接(有任意数量的选项等)我总是收到 中记录的错误。那里推荐的解决方案实际上有效:将 tools 目录移动到树的更下方以获得路径

${HOME}/Android/cmdline-tools/tools/bin/sdkmanager

但是新的中间目录 必须 命名为 cmdline-tools;我尝试了其他方法(Sdksdk_manager 等)但没有效果:出现相同的错误。


现在,在克隆的 Flutter repo, I see in the file dev/bots/download_android_sdk.sh 中查找我应该拥有的可执行文件

$ANDROID_SDK_ROOT/tools/bin/sdkmanager

这提示我在我的设置中需要

ANDROID_SDK_ROOT=${HOME}/Android/cmdline-tools

导出它并 运行 宁一堆 sdkmanager 安装命令(比如说

$ANDROID_SDK_ROOT/tools/bin/sdkmanager platform-tools

等)我看到我的 ${HOME}/Android 目录开始填充相应的目录 platform-toolsbuild-tools 等。所以那些新安装的目录位于与我的 $ANDROID_SDK_ROOT 相同的级别,记得,当我这样做时,设置为 $HOME/Android/cmdline-tools.

另一方面,当我去 the file

中查看(在同一个 Flutter 存储库中)
packages/flutter_tools/lib/src/android/android_sdk.dart

我看到我应该有目录 $ANDROID_SDK_ROOT/build-tools。这与之前观察到的build-tools之类应该和$ANDROID_SDK_ROOT处于同一水平,而不是低于是直接矛盾的。

我的问题是我不知道如何解决 Flutter 代码库中这种明显的自相矛盾。是哪个?在我的设置中,ANDROID_SDK_ROOT 应该是 $HOME/Android 还是 $HOME/Android/cmdline-tools


PS

$ANDROID_SDK_ROOT 应该是“SDK 安装目录”,但在这种情况下这告诉我什么都没有:毕竟,安装 SDK 正是我想要的正在尝试做。

您也对 GitHub 发表了一些评论,但请注意,Flutter 存储库 dev/ 文件夹中的文件主要用于 CI 目的,并且正在开发 Flutter 框架本身的人。

您指出的脚本实际上是陈旧的文件,用于帮助我们 运行 在 CI 上设置一些测试。我们现在以不同的方式设置这些测试,但忘记删除文件 - 所以感谢您指出这一点,它们很快就会消失!

设置 Android SDK 的最佳方法是按照 Android Studio 站点上的说明进行操作。您可以使用 Studio 来完成,也可以自己下载 SDK 包。