Qt Creator Android错误“已安装平台SDK”

46
我正在开发适用于Android的Qt跨平台应用程序,最近我更新了Qt Creator并安装了新的Qt版本。我使用的是“Qt Creator版本4.5.0”。我已经更新到“QT版本5.10”。这个设置是在Ubuntu 16.04上完成的。
按照链接开始QT安装进行操作。
我总是在Qt Creator->工具->选项->设备->Android中收到错误消息“Android设置有误”。

QT Android Installation Issue

因为上述问题,我无法构建Android应用程序。
我最近更新了我的Android SDK,能够从Android Studio构建和运行示例应用程序,表明SDK安装正常工作。我正在使用Android SDK工具26.1.1。请查看下面的屏幕截图。

Android Studio SDK manager

已安装Android SDK构建工具。 enter image description here

已安装Android SDk平台 enter image description here

已经查看了Stack Overflow和QT论坛上的不同链接,所有建议降级Android SDK工具(由于QT已知的错误),但没有一个解决方案适用于我。我知道使用QT 5.9和Qt Creator版本4.0构建Android应用程序存在一些已知的错误。我猜想它已经解决了,因为在Windows 10上相同的设置运行良好。

QT Creator不会列出任何可用的Android Build SDK QT Android安装错误

如果有人解决了同样的问题,请帮忙。


1
在你的 Android SDK 管理器中,查看“SDK 平台”下是否已安装 API 级别 25。如果没有,请先尝试安装。另外,你显示的“Android SDK 平台工具”是 27 而不是 26。 - Mohammad Kanan
@MohammadKanan感谢您的帮助,是的,'API Level 25'已经安装,请查看更新后的截图以获取更多信息。但我仍然遇到以上问题。 - Swapnil
12个回答

32

我刚发现这个错误报告,在评论中可以找到以下内容:

本地的'sdkmanager'工具无法更新Windows上的软件包,并且在JDK 9上失败,这些问题会引起Qt Creator的连锁反应。

我刚尝试安装了JDK 8并更改了路径,在重新打开设置菜单后,它已经能够工作了!


2
我在使用Qt 5.9和Creator 4.4时遇到了类似的问题。安装JDK 8解决了这些问题。 - Bruno Ferreira
有没有办法使用PyQt来开发Android应用程序,而不是Qt?我听说过Pyside,但无法与Android链接。 - Nimish Bansal
@NimishBansal 我会让其他人回答这个问题,我对pyqt没有任何经验。 - Vesafary
我遇到了完全相同的问题,这个解决方案真的很有效。谢谢! - NeonMan
刚刚安装了Qt 5.12和Android SDK API 28(Pie),遇到了同样的问题。安装JDK 8解决了这个问题。我认为现在应该接受这个答案。 - Moohasha
显示剩余2条评论

11

经过多次尝试,我终于成功解决了这个问题,感谢 Mohammad Kanan 和 Vesafary 的回答让我离解决方法更近了。以下是实际解决问题的步骤。这可能对在Ubuntu上遇到同样问题的人有所帮助,也可能适用于其他平台。

  1. 第一步(正如大多数答案建议的那样)是将JDK 9更改为JDK 8。我使用的Java版本为"1.8.0_152"
  2. 第1步并没有帮助我(Qt Creator保留了一些设置),所以我使用Qt Maintenance工具完全删除了Qt 5.8、5.9和5.10,并按照以下2个链接操作完全卸载Qt卸载Qt Creator

然后重新安装。也许你的问题可以在这一步得到解决。

  1. Step 2 在我的情况下也没有帮助,QT Creator仍然保留了部分设置,需要重置Qt Creator设置。可以通过删除以下文件夹中的数据来完成

    ~/.config/QtProject ~/.config/Qt file ~/.config/QtProject.conf

路径在不同的系统和操作系统中可能不同。以下链接在这种情况下将是有用的。

创建者FAQ

Stack Overflow Qt设置1

Stack Overflow Qt设置2

现在我可以构建和运行Android应用程序了。


在我们的SDK文件夹中有一个二进制文件:Sdk/tools/bin/sdkmanager。这似乎无法与Java 9或更高版本配合使用,而qtcreator使用它来检测平台SDK。由于代码书写不规范,它不能区分没有安装SDK和sdkmanager损坏了两种情况。 - Dennis Beier
那么,对于必须使用特定版本的QtCreator和JDK进行工作的人来说,可能没有解决方案吗?我也有同样的问题,但无法切换它们。 - Aziuth

10
我使用答案框向您展示它对我的工作方式,最后一条评论:我不安装NDK 16..尝试从Android管理器中删除它;而(对于Qt)单独安装NDK 10e(这已经是Qt的推荐)。 enter image description here 而对于Qt的配置方面: enter image description here

enter image description here


9

"Platform SDK installed" 需要一个可用的 sdkmanager 命令。

如果您已经安装了平台SDK,请尝试直接运行 sdkmanager 命令。

这是 $ANDROID_SDK_ROOT/tools/bin/sdkmanager。在我的Linux系统中,它位于 $HOME/Android/Sdk/tools/bin/sdkmanager

通常的问题是

  • 您需要正确安装JDK 8(请注意,JDK 9、JDK 10和JDK 11将无法工作!)

如果您安装了更新的JDK,则需要降级到JDK 8。OpenJDK或Oracle都可以使用,但必须是JDK 8。

解决任何剩余的 sdkmanager 命令行问题,然后一旦完成,您应该再次发现Qt Creator能够正常使用。

参考资料:


2

谢谢!我也遇到了同样的问题,使用Debian Buster (sid)、QtCreator 4.6.2和Qt5.10.1。

进入~/.config目录并删除所有qtcreator设置,然后重新启动并指定jdk8、Android SDK路径和NDK路径。

这样就可以解决愚蠢的SDK平台未安装错误。 :)

有趣的是,我尝试删除所有~/.config/qtcreator*内容,然后指定jdk10。结果与之前一样不能正常工作。

如果你改成jdk8,它仍然无法正常工作。 你必须关闭QtCreator,删除所有配置文件,重新打开并再次选择它,然后它将可以工作。


在2019年2月的Ubuntu 18上,我不得不使用JDK /usr/lib/jvm/java-1.8.0-openjdk-amd64,配合SDK /home/don/Android/Sdk/和NDK /home/don/Android/Sdk/ndk-bundle,并在sdkmanager中添加版本25和27。这是一个奇怪而棘手的问题。 - don bright

2
我刚刚经历了与OP完全相同的症状。只是与OP不同的是,我使用的是Ubuntu 19.10软件库中提供的Qt Creator 4.8.0。
症状:
从Qt Creator自检清单中相关部分来看:
✓  SDK tools installed.
X  Platform SDK installed.

一个额外的症状是下方的“SDK Manager”选项卡显示以下信息:
SDK管理器在当前版本的SDK工具中不可用。请使用本地SDK管理器。
原因和解决方法:
这个问题的原因是SDK工具的版本错误。虽然该错误版本被识别(“已安装SDK工具”),但Qt Creator不能利用它来检测已安装的平台SDK或安装新的SDK。
在我的情况下,我只是下载了最新版本,即Android Studio下载页面上提供的“commandlinetools-linux-*_latest.zip”。该版本引入了与Qt Creator所期望的早期版本接口不兼容的更改。新软件包确实非常不同:它有一个不同的名称(“commandlinetools”与“sdk-tools”),期望放置在不同的位置等等。
为了解决这个问题,请按照以下步骤下载并安装“Android SDK Tools 26.1.1”(rev. 4333796),当然需要提供自己的Android SDK目录:
cd /opt/android-sdk/
wget https://dl.google.com/android/repository/sdk-tools-linux-4333796.zip
unzip sdk-tools-linux-4333796.zip

这解决了上述所有症状。

1
在我的情况下,我安装了SDK工具平台SDK后出现了红色的叉号。
为了解决这个问题,我需要从https://androidsdkoffline.blogspot.com/p/android-sdk-tools.html下载Android SDK工具。
文件名为tools_r25.2.5-linux.zip。
我将提取后的tools文件夹放在sdk文件夹中。现在我的设置只能与open-jdk-8一起使用,现在我可以在我的S10上部署QML应用程序。

1

好的,在尝试了许多小时后,我终于找到了如何解决它的方法。

  • 下载并单独使用Android NDK r10e(不要通过SDK Manager安装)
  • 下载并使用不带Android Studio的Android SDK(从官方网站下载android工具),Qt首选项将安装所有所需的软件包(构建工具、平台工具、sdk工具、平台android-28)
  • 安装并使用Java JDK 8(不是更新版本)

请注意,通过Android Studio安装SDK包将无法被Qt检测到。


1

Linux:

对我来说,提出的解决方案都没有起作用。

我已经安装了Java 8和Qt 5.12,最新的SDK和NDK应该可以工作(自Qt 5.9以来应该可以工作)。

经过数小时的折腾,重新安装Qt和Java,删除配置文件,下载旧版NDK等所有尝试之后,仍然无法正常工作。

我的错误是将SDK和NDK解压缩到只读位置的根目录下,而不是普通用户的文件夹。通过使用chown命令将文件夹转换为普通用户的所有权,Creator可以找到一切并按预期工作。

因此,还要检查运行Qt Creator的用户是否拥有包含SDK和NDK的文件夹。这是一个快速检查,可能会防止您删除配置文件。:)

编辑: 2019年8月,我为Qt Creator添加了一个补丁,检查了这个特定情况并相应地报告了错误。

https://code.qt.io/cgit/qt-creator/qt-creator.git/commit/?id=4ca3bd4d0f336f7055080e78849c0607ba99843c


1
您不需要清除qt的配置。只需从此处安装最新的jdk 8 -> http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html,然后在选项中选择jdk位置,向下滚动并选择sdk管理器选项卡。点击更新已安装按钮,它应该显示一个需要同意的许可证列表的窗口。
问题出现在jdk 9及以上版本。由于某种奇怪的原因,它不显示许可协议并且无法继续执行。解决方法是坚持使用jdk8。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接