0

我有一个 qt 快速应用程序,它在WindowsAndroid. 但是当我QNetworkAccessManager用来发出 GET 请求时,它在 Windows 上没有错误,但在 Android 上却有以下错误

W ShakhehNabat: qt.network.ssl: QSslSocket: cannot resolve OPENSSL_init_ssl
W ShakhehNabat: qt.network.ssl: QSslSocket: cannot resolve OPENSSL_init_crypto
W ShakhehNabat: qt.network.ssl: QSslSocket: cannot resolve ASN1_STRING_get0_data
W ShakhehNabat: qt.network.ssl: QSslSocket: cannot resolve EVP_CIPHER_CTX_reset
W ShakhehNabat: qt.network.ssl: QSslSocket: cannot resolve EVP_PKEY_base_id
W ShakhehNabat: qt.network.ssl: QSslSocket: cannot resolve RSA_bits
W ShakhehNabat: qt.network.ssl: QSslSocket: cannot resolve OPENSSL_sk_new_null
W ShakhehNabat: qt.network.ssl: QSslSocket: cannot resolve OPENSSL_sk_push
W ShakhehNabat: qt.network.ssl: QSslSocket: cannot resolve OPENSSL_sk_free
W ShakhehNabat: qt.network.ssl: QSslSocket: cannot resolve OPENSSL_sk_num
W ShakhehNabat: qt.network.ssl: QSslSocket: cannot resolve OPENSSL_sk_pop_free
W ShakhehNabat: qt.network.ssl: QSslSocket: cannot resolve OPENSSL_sk_value
W ShakhehNabat: qt.network.ssl: QSslSocket: cannot resolve DH_get0_pqg
W ShakhehNabat: qt.network.ssl: QSslSocket: cannot resolve SSL_CTX_set_ciphersuites
W ShakhehNabat: qt.network.ssl: QSslSocket: cannot resolve SSL_set_psk_use_session_callback
W ShakhehNabat: qt.network.ssl: QSslSocket: cannot resolve SSL_get_client_random
W ShakhehNabat: qt.network.ssl: QSslSocket: cannot resolve SSL_SESSION_get_master_key
W ShakhehNabat: qt.network.ssl: QSslSocket: cannot resolve TLS_client_method
W ShakhehNabat: qt.network.ssl: QSslSocket: cannot resolve TLS_server_method
W ShakhehNabat: qt.network.ssl: QSslSocket: cannot resolve X509_STORE_CTX_get0_chain
W ShakhehNabat: qt.network.ssl: QSslSocket: cannot resolve X509_getm_notBefore
W ShakhehNabat: qt.network.ssl: QSslSocket: cannot resolve X509_getm_notAfter
W ShakhehNabat: qt.network.ssl: QSslSocket: cannot resolve X509_get_version
W ShakhehNabat: qt.network.ssl: QSslSocket: cannot resolve X509_STORE_set_ex_data
W ShakhehNabat: qt.network.ssl: QSslSocket: cannot resolve X509_STORE_get_ex_data
W ShakhehNabat: qt.network.ssl: QSslSocket: cannot resolve CRYPTO_free
W ShakhehNabat: qt.network.ssl: QSslSocket: cannot resolve OpenSSL_version_num
W ShakhehNabat: qt.network.ssl: QSslSocket: cannot resolve OpenSSL_version
W ShakhehNabat: qt.network.ssl: Incompatible version of OpenSSL

我运行下面的代码和

    qWarning()<<"QSslSocket build version =>"<<QSslSocket::sslLibraryBuildVersionString();
    qWarning()<<"QSslSocket version =>"<<QSslSocket::sslLibraryVersionString();
    qWarning()<<"QSslSocket supportsSsl =>"<<QSslSocket::supportsSsl();

这是Windows 上的输出

QSslSocket build version => "OpenSSL 1.1.1b  26 Feb 2019"
QSslSocket version => "OpenSSL 1.1.1c  28 May 2019"
QSslSocket supportsSsl => true

这是Android上的输出

W ShakhehNabat: QSslSocket version => ""
W ShakhehNabat: QSslSocket supportsSsl => false
W ShakhehNabat: QSslSocket build version => "OpenSSL 1.1.1b  26 Feb 2019"

我已经为 Android ARMv7 安装了 Qt 5.12.5 MSVC2017 64bit 和 Qt 5.12.5,但路径中只有两个文件夹Win_x64Win_x86 ( C:\Qt\Tools\OpenSSL)

编辑

当我提出请求时,我会收到此错误

qt.network.ssl: QSslSocket::connectToHostEncrypted: TLS initialization failed

我需要为 ssl 套接字做一些初始化吗?我应该将pem文件添加到我的应用程序吗?

4

0 回答 0