解决QT编译Android程序不支持openssl问题

Posted DS小龙哥

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了解决QT编译Android程序不支持openssl问题相关的知识,希望对你有一定的参考价值。

1. 问题

使用QT编译android程序时,由于需要使用HTTPS的请求,打包的apk里需要附带openssl相关的库,不然无法使用https请求。

QT官方对openssl支持的说明,以及提供的解决办法:https://doc.qt.io/qt-5/android-openssl-support.html

Qt 安装包附带 OpenSSL 支持,但由于某些国家/地区的法律限制,OpenSSL 库不是该包的一部分。如果你的应用程序依赖于 OpenSSL,请考虑将 SSL 库与你的应用程序包 (APK) 一起打包,因为目标设备可能有也可能没有。

你可以使用QSslSocket::supportsSsl()静态函数来检查目标设备上的 SSL 支持。首先包括头文件:

#include < QSslSocket > 

然后使用以下行检查是否支持 SSL:

qDebug () << "设备支持OpenSSL:

以上是关于解决QT编译Android程序不支持openssl问题的主要内容,如果未能解决你的问题,请参考以下文章

Qt5.9.0正式版动态编译 (VS2017) 支持WebEngine ICU OpenSSL

Qt 5.6.0 动态编译(VS2013 x86 target xp openssl icu webkit)

更换Qt QtEmbedded库的版本出现问题及解决(交叉编译OpenSSL)

Ubuntu+NDK编译openssl(为了Android上使用libcurl且支持HTTPS协议)

Qt静态编译时使用OpenSSL有三种方式(不使用,动态使用,静态使用,默认是动态使用)

加快QT工程编译速度(还可给Qt for Android设置)