Qt Creator通过SDK管理器重复Android SDK cmdline-tools更新-为什么?

3vpjnl9f  于 2023-04-18  发布在  Android
关注(0)|答案(1)|浏览(404)

我在Windows 11上使用Qt 5.15.1和Qt Creator 8.0.2,并在下载JDK,SDK和OpenSSL后配置Android。我卡住的一步是SDK Manager,它反复请求更新SDK的一个组件,即命令行工具包。如下图所示:
Qt Creator Preferences->Devices->Android spontaneous dialog
我知道命令行工具的Android SDK目录(在我的例子中是C:/Android/SDK/cmdline-tools/)有两个文件,bin/和lib/子目录,以及一个latest/子目录,当我接受Qt Creator对话框的建议时,该子目录正在更新。但是这样做会导致从服务器获取最新的内容并安装到 new 目录.../cmdline-tools/latest-n/,其中n是一个数字,随着每次重复尝试而递增。下面的对话框给出了创建每个子目录的解释,解释说之前已经存在一个latest/。
warning message from Android SDK command line tools update
但是一旦这样做了,Qt Creator的配置Android设置的对话框(如下所示)由于“缺少包”而保持错误状态。我可以在Qt Creator中单击SDK Manager工具按钮再次调用它,它立即显示第一个图像中所示的提示。
Qt Creator Preferences->Devices->Android dialog, showing incomplete configuration state
在.../cmdline-tools/目录中,文件source.properties包含以下内容:
Pkg.Revision=9.0
Pkg.Path=cmdline-tools;9.0
Pkg.Desc=Android SDK Command-line Tools
我四处寻找一个文件,它指示cmdline-tools包是否是最新的修订版,希望Qt Creator会查看它并得出结论,它的配置是完整的。没有找到这样的文件。
我尝试将新安装的latest-n/ subdir重命名为latest/,然后重新启动Creator。没有变化。我尝试直接删除子目录latest/(实际上是临时将其重命名为.old),但是SDK Manager无法从Qt Creator中运行(即使有一个.../cmdline-tools/bin目录,其中包含sdkmanager.bat)。
我尝试在Creator之外手动更新SDK:
sdkmanager.bat --install "cmdline-tools;latest"
在bash窗口中,它会产生相同的消息(在stdout上),即不要覆盖原始的子目录,而是创建一个编号的latest-n/ subdir。
在将.../cmdline-tools/latest/bin和.../cmdline-tools/bin目录的路径添加到系统Path变量后,我重复了所有这些尝试,如下所示。没有任何好处。
Windows system environment variables, showing paths to the Android SDK tools at the end
最后,我尝试忽略这个问题,继续为Android配置Qt项目,但该选项不可用,因为它声称Qt Creator的Android设置不完整。
有什么建议吗?提前感谢!

ffscu2ro

ffscu2ro1#

我通过几个步骤解决了这个问题,但不幸的是,我不确定他们中的哪一个转动了钥匙。所以下面的步骤对我来说已经足够了,但不确定他们都是必要的。我希望他们中的一个能为其他人解决这个问题。

  • 从JDK 20切换到JDK 17(来自@JoeCFD的评论很恰当),从Oracle下载,并使用系统环境变量JAVA_HOME =(在我的情况下)C:\Program Files\Java\jdk-17指向它
  • 从Qt 5.15.1切换到6.5,包括由于库更改而移植一些代码,Qt有很好的文档记录
  • 将我的Android SDK目录重命名为.old,有效地清空了它(后来删除了.old版本)
  • 让之前安装的Android Studio版本Electric Eel在启动时发现缺少的SDK,并执行最小下载和配置以安装SDK;在SDK平台选项卡下:Android SDK平台33,并在SDK工具选项卡下:Android SDK命令行工具(最新版),Android Emulator,Android SDK Platform-Tools
  • 然后让Qt Creator通过通常的Edit-〉Preferences-〉Devices-〉Android完成对Android SDE/kit配置的必要添加,并指向JDK和SDK目录。

我现在正在运行Qt Android构建并部署到Pixel 5a目标上的Qt 6.5 Clang arm 64-v8 a架构中,并且还在桌面PC配置上运行相同的代码,使用Qt 6.5 MSVC 2019 64位构建。

相关问题