android - 无法在 Android Studio 中添加其他平台/构建工具
问题描述
我通过 Ubuntu 软件中心在 Ubuntu 上安装了 Android Studio Arctic Fox 2020.3.1,之前按照官方安装说明从终端使用 apt 安装了 Java 和 android SDK,在安装时或之后我没有报告任何问题。当我运行 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 到“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 文件夹的硬链接,通过检查链接的属性,我可以确认它是由 Android Studio 于 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创建了硬链接?
解决方案
我自己制定了解决方案。解决方案是:
(注意:您需要确保您的 PC 已连接到互联网,以便 Android Studio 可以下载 Android SDK)
- 卸载 Android SDK。
就我而言,我通过 apt 在终端中安装了 Android SDK,所以我使用以下命令卸载:
sudo apt-get remove android-sdk
接着
sudo apt-get --purge remove android-sdk
- 启动 Android Studio,它将自动启动 Android Studio 设置向导并发出弹出消息:
Title: Missing Components
Message: No Android SDK found
- 按照向导安装 SDK。
这次 SDK 已安装到您的主目录,Android Studio 对 SDK 没有任何问题。
为了测试一切正常,我为我的测试应用程序安装了额外的构建工具和目标平台,并在 AVD 上构建并运行它,一切正常。
推荐阅读
- sql - 将数据从一个表复制到另一个 postgresql
- django - Django admin - 在列表显示中同时编辑多个值
- angular - Angular创建空模型
- c# - 使用 RestSharp 反序列化带有子元素的 OData 类型 JSON
- angular - 无法绑定数据源,因为它不是表的已知属性 - angular4
- excel - 如何将此一维数组转置到另一个工作表?
- mongodb - Kafka 与 mongo oplog 连接
- html - 使用引导程序将复选框与其他输入组件垂直居中
- javascript - Typescript 接口,为动态第二个属性引用一个实例属性
- laravel-5 - Laravel - 多对多多态关系