Несовместимая версия OpenSSL для android в приложении qt quick - PullRequest
0 голосов
/ 11 марта 2020

У меня есть приложение qt quick, которое работает без ошибок на Windows и Android. Но когда я использую 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"

Я установил Qt 5.12.5 MSVC2017 64bit и Qt 5.12.5 для Android ARMv7, но у меня всего две папки Win_x64 и Win_x86 в пути (C:\Qt\Tools\OpenSSL)

Редактировать

Когда я сделаю запрос, я получу эту ошибку

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

Нужно ли выполнить некоторую инициализацию для сокета ssl? добавить в приложение файл pem ?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...