当前位置: 首页 > article >正文

QTAndroid编译环境配置

开始 QT 官网的安装教程安装,经过测试有部分小错误。以下是结合教程和网上搜集的一些材料最后安装成功的步骤。

SDK和JDKhttp://链接: https://pan.baidu.com/s/13CImHLAoUFAdecF2BVsBlQ?pwd=627g 提取码: 627gicon-default.png?t=O83Ahttp://链接: https://pan.baidu.com/s/13CImHLAoUFAdecF2BVsBlQ?pwd=627g 提取码: 627g

安装准备

首先下载 JDK

JDK 下载icon-default.png?t=O83Ahttps://www.oracle.com/java/technologies/downloads/

这里不要下载 JDK20 和 JDK17,需要下载 JDK 8

这里不要下载 JDK20 和 JDK17,需要下载 JDK 8

将页面往下滑,到下图所示的位置,下载 Java8,点击 Windows,下载安装包。

Android SDK 下载icon-default.png?t=O83Ahttps://www.androiddevtools.cn/

这里不要下载 android studio,直接下载 SDK 即可,请注意 SDK 下载在页面的下方,使劲往下滑。

页面划到下图所示位置,下载相对应的 SDK。

还有 NDK,经过测试,NDK 可以在后续步骤中的 SDK 自动下载,不需要手动下载,而且手动下载容易搞错版本号。

到这里安装准备结束,下面进入安装环节。

安装过程

JDK 安装

JDK 下载完成后是安装包的形式,如下图

打开之后,点击下一步

点击更改可以修改安装位置,上面的功能选项不要修改,完成后点击下一步,

等待,过一会儿会出现JRE的安装界面,

看到下图界面后,可以更改安装目录,建议改到和JDK同一根目录下,点击下一步,

安装完成后,需要配置系统环境变量。

首先配置 JAVA_HOME 变量,按如下图操作,变量值为刚才安装 JDK 安装目录。

然后配置 CLASSPATH 变量,如下图,变量值为.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar。

配置完成后全点确认,保存。

Android SDK 安装

Android SDK 下载完成后是压缩包形式,如下图所示。

解压文件放在空目录下

进入此目录,打开SDK Manager.exe。

打开后需要等待一会儿会出界面,等下面进度条走完,将其他所有√全部取消,只留下这一个,点击右下角Install,等待一会儿后提示完成,关闭这个界面。

安装这两个,然后关闭界面。

进入如下目录,打开 cmd 命令行。

输入sdkmanager,查看是否与下图输出一致。

如果提示没有sdkmanager.bat,请将下面的代码拷贝入记事本,并改名为sdkmanager.bat。如果正常,请跳过这段。

@if "%DEBUG%" == "" @echo off
@rem ##########################################################################
@rem
@rem  sdkmanager startup script for Windows
@rem
@rem ##########################################################################

@rem Set local scope for the variables with windows NT shell
if "%OS%"=="Windows_NT" setlocal

set DIRNAME=%~dp0
if "%DIRNAME%" == "" set DIRNAME=.
set APP_BASE_NAME=%~n0
set APP_HOME=%DIRNAME%..

@rem Add default JVM options here. You can also use JAVA_OPTS and SDKMANAGER_OPTS to pass JVM options to this script.
set DEFAULT_JVM_OPTS="-Dcom.android.sdklib.toolsdir=%~dp0\.."

@rem Find java.exe
if defined JAVA_HOME goto findJavaFromJavaHome

set JAVA_EXE=java.exe
%JAVA_EXE% -version >NUL 2>&1
if "%ERRORLEVEL%" == "0" goto init

echo.
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
echo.
echo Please set the JAVA_HOME variable in your environment to match the
echo location of your Java installation.

goto fail

:findJavaFromJavaHome
set JAVA_HOME=%JAVA_HOME:"=%
set JAVA_EXE=%JAVA_HOME%/bin/java.exe

if exist "%JAVA_EXE%" goto init

echo.
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
echo.
echo Please set the JAVA_HOME variable in your environment to match the
echo location of your Java installation.

goto fail

:init
@rem Get command-line arguments, handling Windows variants

if not "%OS%" == "Windows_NT" goto win9xME_args
if "%@eval[2+2]" == "4" goto 4NT_args

:win9xME_args
@rem Slurp the command line arguments.
set CMD_LINE_ARGS=
set _SKIP=2

:win9xME_args_slurp
if "x%~1" == "x" goto execute

set CMD_LINE_ARGS=%*
goto execute

:4NT_args
@rem Get arguments from the 4NT Shell from JP Software
set CMD_LINE_ARGS=%$

:execute
@rem Setup the command line

set CLASSPATH=%APP_HOME%\lib\sdklib-25.3.0-dev.jar;%APP_HOME%\lib\layoutlib-api-25.3.0-dev.jar;%APP_HOME%\lib\dvlib-25.3.0-dev.jar;%APP_HOME%\lib\repository-25.3.0-dev.jar;%APP_HOME%\lib\gson-2.2.4.jar;%APP_HOME%\lib\commons-compress-1.8.1.jar;%APP_HOME%\lib\httpclient-4.1.1.jar;%APP_HOME%\lib\httpmime-4.1.jar;%APP_HOME%\lib\common-25.3.0-dev.jar;%APP_HOME%\lib\kxml2-2.3.0.jar;%APP_HOME%\lib\annotations-25.3.0-dev.jar;%APP_HOME%\lib\annotations-12.0.jar;%APP_HOME%\lib\jimfs-1.1.jar;%APP_HOME%\lib\httpcore-4.1.jar;%APP_HOME%\lib\commons-logging-1.1.1.jar;%APP_HOME%\lib\commons-codec-1.4.jar;%APP_HOME%\lib\guava-18.0.jar

@rem Execute sdkmanager
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %SDKMANAGER_OPTS%  -classpath "%CLASSPATH%" com.android.sdklib.tool.SdkManagerCli %CMD_LINE_ARGS%

:end
@rem End local scope for the variables with windows NT shell
if "%ERRORLEVEL%"=="0" goto mainEnd

:fail
rem Set variable SDKMANAGER_EXIT_CONSOLE if you need the _script_ return code instead of
rem the _cmd.exe /c_ return code!
if  not "" == "%SDKMANAGER_EXIT_CONSOLE%" exit 1
exit /b 1

:mainEnd
if "%OS%"=="Windows_NT" endlocal

:omega

 完成以上操作后,就是与官网不同的部分了,官网给出的安装指令已经失效,新版安装指令如下所示。请按顺序依次输入以下指令。

sdkmanager "build-tools;30.0.2" --sdk_root=<ANDROID_SDK_ROOT>
sdkmanager "ndk;21.3.6528147" --sdk_root=<ANDROID_SDK_ROOT>
sdkmanager "platform-tools" --sdk_root=<ANDROID_SDK_ROOT>
sdkmanager "platforms;android-30" --sdk_root=<ANDROID_SDK_ROOT>
sdkmanager "cmdline-tools;latest" --sdk_root=<ANDROID_SDK_ROOT>
sdkmanager "extras;google;usb_driver" --sdk_root=<ANDROID_SDK_ROOT>

这里,将其中的<ANDROID_SDK_ROOT>需要改成实际安装路径,比如我使用的是以下命令。

sdkmanager "build-tools;30.0.2" --sdk_root="D:\Qt\androidenviroment\android-sdk-windows"
sdkmanager "ndk;21.3.6528147" --sdk_root="D:\Qt\androidenviroment\android-sdk-windows"
sdkmanager "platform-tools" --sdk_root="D:\Qt\androidenviroment\android-sdk-windows"
sdkmanager "platforms;android-30" --sdk_root="D:\Qt\androidenviroment\android-sdk-windows"
sdkmanager "cmdline-tools;latest" --sdk_root="D:\Qt\androidenviroment\android-sdk-windows"
sdkmanager "extras;google;usb_driver" --sdk_root="D:\Qt\androidenviroment\android-sdk-windows"

安装过程中会询问是否同意,输入 y 即可。

以上,完成后就可以配置 QT creator 了。

配置 QT Creator

打开QT Creator,点击菜单栏中的工具-选项,如下图所示。

在上述界面中,将JDK location选择为刚才的JDK安装路径,Android SDK的路径选择为刚才SDK的根目录,会自动检测,这里图中与上述配置过程不一致是为了展示安装成功效果,实际请以安装时实际选择路径为准。

正常到这里已经有两个√了,JDK和SDK的部分完全正常,下面OpenSSL binaries location请选择与在SDK根目录中的一个空文件夹,例如上图所示,然后点击右侧Download OpenSSL键,会自动下载OpenSSL,下载完成后出现第三个√。

至此,Win11 下QT5.15.2的安卓编译环境安装完成,可以在下图所示Kits选项卡中看到Android编译环境已正常识别。

2023 6/19 更新

安装完编译环境之后,如果没有设备需要在电脑上安装虚拟机,安装完虚拟机后需要配置,这里也有很多问题,在这里记录一下,避免以后踩坑

首先,如果没有安卓设备,我们需要在电脑上安装虚拟机,这里我们选择夜神模拟器

安装完成后,还需要进行一些设定,否则 qtcreator 无法正确链接到设备(老版本 qtcreator 是可以自动连接,但更新到 10.0.2 之后的版本,需要手动连接)

1、“夜神”的设置

夜神模拟器链接不了adb的缘由主要是adb的版本与夜神模拟器adb版本不一致形成的,具体的解决办法请看下面的操做步骤

方法/步骤 

1、 使用快捷键win + R打开运行窗口,输入cmd,这里主要是为了让 qt 的 adb 和夜神模拟器的 adb 版本一致

2、 启动了cmd命令窗口工

3、 输入nox_adb version 命令,查看模拟器的adb版本,如果发现模拟器的版本是1.0.36与android-sdk的adb版本不一致3d

 

4、 进入模拟器的安装目录下,修改nox_adb.exe的名字为nox_adb.exe.bak

把android-sdk的adb.exe文件复制到桌面一份,修改adb.exe的名称为nox_adb.exe,再把桌面修改完名称的nox_adb.exe复制到模拟器的Nox\bin目录下

2、连接到127.0.0.1

这一步非常关键

输入:cd  D:\Program Files\Nox\bin

nox_adb.exe  connect 127.0.0.1:62001

而后adb devices就有了。

1、cmd 中输入

nox_adb.exe connect 127.0.0.1:62001

2、 在cmd中输入 adb devices,能够发现模拟器设备了,已经链接上了,大功告成

以上全部配置完,打开 qtcreator 就可以连接上模拟器了,但是依旧还有问题

在编译第一个项目的时候,报出不支持套件的错误。

这是由于,android 设备 qt 套件 sdk 版本迭代都非常快。需要一致。

在Android 系统上,每一个CPU架构对应一个ABI:armeabi,armeabi-v7a,x86,mips,arm64- v8a,mips64,x86_64。

最后将套件设置为 armeabi-v7a,得以解决。

但是解决了以上问题依旧无法编译安装,因为需要设置 android sdk 版本。

需要在这里设置一下

但是设置完了依旧无法解决。

因为我们正常是没有签名密钥的,没有密钥签名只能打出debug的包,签名后才能发布release包。

 


http://www.kler.cn/a/311785.html

相关文章:

  • 万字长文解读深度学习——Transformer
  • 前端UniApp面试题及参考答案(100道题)
  • 躺平成长-代码开发,利用kimi开发小程序(09)
  • 基于 CMSIS-PACK 移植Bootloader
  • 深究JS底层原理
  • Flutter中的Extension关键字
  • Linux基础命令——文件系统的日常管理
  • TaskRes: Task Residual for Tuning Vision-Language Models
  • vue项目中——如何用echarts实现动态水球图
  • 828华为云征文 | 华为云X实例监控与告警管理详解
  • 【Linux入门】基本指令(一)
  • 服务器上PFC配置丢失问题排查与解决方案
  • Python | Leetcode Python题解之第412题Fizz Buzz
  • 简评2024.9.16北京大运河音乐节
  • Prompt最佳实践|指定输出的长度
  • 深度学习自编码器 - 收缩自编码器(CAE)篇
  • 74、Python之函数式编程:深入理解惰性求值与生成器
  • MySql 初次见面
  • Java 基础知识九(网络编程)
  • 二叉树(下)
  • Conda Config修改
  • 深度学习-18-深入理解BERT实战使用预训练的DistilBERT模型
  • 【Vue嵌套数据中,实现动态表头和内容】
  • 不会JS逆向也能高效结合Scrapy与Selenium实现爬虫抓取
  • 前端框架对比和选择?
  • [学习笔记]树链剖分(简易版) 及其LCA