赞
踩
这两天有将之前用QT做的一个软件改成安卓版的需要,想着QT号称全平台通用,应该很好搞,没想到搭环境就搞了好久,现在将整个经历发出来给大家分享,帮大家避雷了。
QT官网有给出很简单的安装教程,但是经我测试该教程有一部分小错误。大家可以参照我的方法安装。
首先下载以下内容
这部分很迷惑,请不要下载Java 18,而要下载Java 8。
请将页面下滑,到如下图所示所示位置,下载Java8,点击Windows,再点击蓝色箭头下载Java8的安装包。
下载SDK的部分,看到很多人都推荐下载Android Studio,可是我从没用过Studio,想必安装也相当复杂,所以直接下载SDK即可,请注意,SDK下载在页面很下方,请使劲向下滑。
页面滑到下图所示位置,点击蓝色箭头下载SDK。
网上很多要求下载ndk的,经我测试,ndk可以在后续步骤中通过SDK自动下载,不需要手工下载,并且手工下载容易搞错版本号,这里推荐使用自动下载的方式。
到这里,安装准备结束,下面进入安装环节。
JDK下载完后是安装包的形式,如下图所示。
打开后,点击下一步,
点击更改可以修改安装位置,上面的功能选项不要修改,完成后点击下一步,
等待,过一会儿会出现JRE的安装界面,
看到下图界面后,可以更改安装目录,建议改到和JDK同一根目录下,点击下一步,
安装完成如下图所示。
安装完成后,需要配置系统环境变量。
首先配置JAVA_HOME
变量,按下图操作,变量值为刚才的JDK安装目录。
然后配置CLASSPATH
变量,如下图所示,变量值为.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar
。
配置完成后全点确认,保存。
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="C:\android-sdk-windows"
sdkmanager "ndk;21.3.6528147" --sdk_root="C:\android-sdk-windows"
sdkmanager "platform-tools" --sdk_root="C:\android-sdk-windows"
sdkmanager "platforms;android-30" --sdk_root="C:\android-sdk-windows"
sdkmanager "cmdline-tools;latest" --sdk_root="C:\android-sdk-windows"
sdkmanager "extras;google;usb_driver" --sdk_root="C:\android-sdk-windows"
第一次安装会询问是否同意协议,如下图所示,输入y
回车即可。
请注意,ndk还有另外几个包都特别大,安装很慢,请耐心等待,也可以通过任务管理器查看是否有网络流量,如果有,则说明安装正常进行。
安装完成后,提示done
,将上述命令全部执行并成功后,可以通过sdkmanager --list
查询是否安装成功。请检查上述包是否全部安装,例如我的输出如下所示。有几个包是多余的,可以不用安装。
Installed packages:
Path | Version | Description | Location
------- | ------- | ------- | -------
build-tools;30.0.2 | 30.0.2 | Android SDK Build-Tools 30.0.2 | build-tools\30.0.2\
cmdline-tools;latest | 7.0 | Android SDK Command-line Tools... | cmdline-tools\latest\
extras;google;simulators | 1.0.0 | Android Auto API Simulators | extras\google\simulators\
extras;google;usb_driver | 13 | Google USB Driver | extras\google\usb_driver\
ndk;21.3.6528147 | 21.3.6528147 | NDK (Side by side) 21.3.6528147 | ndk\21.3.6528147\
patcher;v4 | 1 | SDK Patch Applier v4 | patcher\v4\
platform-tools | 33.0.2 | Android SDK Platform-Tools | platform-tools\
platforms;android-30 | 3 | Android SDK Platform 30 | platforms\android-30\
tools | 25.2.5 | Android SDK Tools 25.2.5 | tools\
以上,就完成了两个库的安装,接下来进行QT Creator的配置。
打开QT Creator,点击菜单栏中的工具-选项,如下图所示。
在弹出窗口中点设备-Android,进入如下界面。
在上述界面中,将JDK location选择为刚才的JDK安装路径,Android SDK的路径选择为刚才SDK的根目录,会自动检测,这里图中与上述配置过程不一致是为了展示安装成功效果,实际请以安装时实际选择路径为准。
正常到这里已经有两个√了,JDK和SDK的部分完全正常,下面OpenSSL binaries location请选择与在SDK根目录中的一个空文件夹,例如上图所示,然后点击右侧Download OpenSSL键,会自动下载OpenSSL,下载完成后出现第三个√。
至此,Win10下QT5.15.2的安卓编译环境安装完成,可以在下图所示Kits选项卡中看到Android编译环境已正常识别。下面步骤与Win10正常开发过程一致。
请注意,第一次编译安卓应用会自动下载gradle,请确保编译过程全程联网,后续编译无需联网。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。