背景
想用Qt开发Android应用,但是一直构建失败,错误是":-1: error: Exception in thread "main" javax.net.ssl.SSLHandshakeException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target"。研究了一会,找到了解决办法。
原因
还是老生常谈的服务器问题,因为Android构建时需要Gradle,但是Gradle的默认下载的地址需要梯子。
前提
- 已按照网络上的Qt配置Android配置好Qt。
- 使用的Qt版本是 6.8.3。
- 使用qmake(cmake有bug,无法配置android package source directory)。
解决方案
1. 打开Qt项目,点击左侧边栏的“项目”。
2. 选择任意一个Android平台的构建套件,并点击其下的“构建”。
3. 在右侧的构建设置中,点击“构建的步骤”中的“构建安卓APK”这一步骤的“详情”。
4. 再“构建安卓APK”的“应用程序”下的“创建模板”。
5. 在跳出来的窗口中,选择“复制Gradle”文件到安卓路径,让背后点击“完成”。
6. 点击右侧边栏的“编辑”,然后在项目的文件浏览器中点击.pro文件,修改文件中的ANDROID_PACKAGE_SOURCE_DIR为创建的android目录(默认设置的有问题,不知道为什么这个值不能使用相对地址)。
7. 在项目的文件浏览器中打开“其他文件”下的android文件夹下的gradle\wrapper目录下的gradle-wrapper.properties,设置distributionUrl值为默认Gradle版本的国内镜像,这里使用的是阿里云镜像,如下:
https://mirrors.aliyun.com/github/releases/gradle/gradle-distributions/v8.10.0/gradle-8.10-bin.zip
8. 然后再构建就行了,如果有问题,就去网上搜索如何设置gradle的国内镜像.