无法在 Android Studio 中添加其他 platforms/build 工具

Cannot add additional platforms/build tools in Android Studio

我通过 Ubuntu 软件中心在 Ubuntu 上安装了 Android Studio Arctic Fox 2020.3.1,之前安装了 Java 和 android SDK apt 从终端,​​按照官方安装说明,我在安装时或之后没有报告任何问题。当我 运行 Android Studio 时,它似乎检测到安装在 Android SDK 的位置:

 /usr/lib/android-sdk

但是当我尝试为 android nougat 添加额外的平台和工具时:

Tools->Android SDK->Android SDK Location

Android SDK 位置是:

/usr/lib/android-sdk

这是正确的,但是当我单击编辑并加载 SDK 组件设置对话框时,Android SDK 位置再次显示并且也是正确的,但是下面有一条警告消息指出:

<!> An existing Android SDK was detected. The setup wizard will only download missing or outdated SDK components.

当这似乎只是在说明显而易见的事情而不需要说的时候,那么为什么要发出警告呢?。无论如何我只是忽略它并尝试添加一些额外的平台支持。在此之前,为了测试 android studio 在安装后是否正常工作,我重建了一个现有的 hello-world 项目,之前构建的目标平台是 27.0.1,并且作为重建该现有项目的结果 Android Studio 似乎已经从 27.0.1 创建了一个硬 link 并将其安装到 'debian' 文件夹中,因此当我在终端中列出该位置时,我得到:

$ls -al /usr/lib/android-sdk/build-tools/

lrwxrwxrwx 1 root root 6 Aug 29 2019 27.0.1 -> debian
drwxr-xr-x 3 root root 4096 Aug 11 00:22 debian

如您所见,'27.0.1' 是 debian 文件夹的硬 link,通过检查 link 的属性,我可以确认它是由 Android 创建的8 月 11 日的工作室,即它的安装日期:

27.0.1 Properties
Name: 27.0.1
Type: Link to folder (inode/ directory)
Parent folder: /usr/lib/android-sdk/build-tools
Modified Wed 11 Aug 2021 12:22:55 BST

当我尝试安装任何其他平台和工具时,Android Studio 现在抱怨无法继续,它告诉我检查日志,当我检查 Idea.log 时它说:

'build-tools;debian' in inconsistent location '/usr/lib/android-sdk/build-tools/27.0.1' (Expected '/usr/lib/android-sdk/build-tools/debian')

当预期的位置存在并且似乎没有这样的问题时,因为 Android SDK 正是安装程序放置它的位置并且它应该在的位置,我不知道为什么它认为有一个问题,似乎没有。但是我不知道为什么 Android Studio 在添加该平台来构建 hello world 时为平台 27.0.1 -> debian 创建了硬 link?

我自己制定了解决方案。解决方案是:

(注意:您需要确保您的 PC 已连接到互联网,以便 Android Studio 可以下载 Android SDK)

  1. 卸载 Android SDK。

就我而言,我在终端中通过 apt 安装了 Android SDK,因此我使用以下命令卸载:

sudo apt-get remove android-sdk

然后

sudo apt-get --purge remove android-sdk
  1. 启动 Android Studio,它将自动启动 Android Studio 安装向导并发出弹出消息:
Title:  Missing Components
Message: No Android SDK found
  1. 按照向导安装SDK。
    这次 SDK 安装到您的主目录,Android Studio 没有问题。

为了测试一切正常,我为我的测试应用安装了额外的构建工具和目标平台,并在 AVD 上构建并运行它,一切正常。