Añadir soporte OpenSSL para Android
El paquete de instalación de Qt viene con soporte para OpenSSL, pero las librerías OpenSSL no forman parte del paquete debido a restricciones legales en algunos países. Si su aplicación depende de OpenSSL, considere empaquetar las librerías SSL con su paquete de aplicación (APK o AAB) ya que el dispositivo de destino puede o no tenerlas.
Puede utilizar la función estática QSslSocket::supportsSsl() para comprobar si el dispositivo de destino admite SSL. Primero, incluya la cabecera:
#include <QSslSocket>A continuación, utilice la siguiente línea para comprobar si se admite SSL:
qDebug() << "Device supports OpenSSL: " << QSslSocket::supportsSsl();
Compruebe Qt Creator's Application Output sección o el Android logcat para ese mensaje de registro.
Añadir librerías OpenSSL
Usando el repositorio de OpenSSL para Android, puedes incluir directamente las librerías OpenSSL en tu propio proyecto.
Con CMake, añada lo siguiente a su CMakeLists.txt:
if (ANDROID)
include(FetchContent)
FetchContent_Declare(
android_openssl
DOWNLOAD_EXTRACT_TIMESTAMP true
URL https://github.com/KDAB/android_openssl/archive/refs/heads/master.zip
)
FetchContent_MakeAvailable(android_openssl)
include(${android_openssl_SOURCE_DIR}/android_openssl.cmake)
endif()O si clonaste el repositorio en un subdirectorio:
include(<path/to/android_openssl>/android_openssl.cmake)
A continuación, agregue las bibliotecas a sus objetivos:
qt_add_executable(your_target_name ..)
qt_add_executable(your_second_target_name ..)
if (ANDROID)
add_android_openssl_libraries(your_target_name your_second_target_name)
endif()Para qmake, añade lo siguiente a tu archivo .pro:
android: include(<path/to/android_openssl/openssl.pri)
Alternativamente, para añadir librerías extra, como libcrypto y libssl. Para CMake, utilice:
set_target_properties(<target_name> PROPERTIES
QT_ANDROID_EXTRA_LIBS "<path_to_libs_dir>/libcrypto_3.so" "<path_to_libs_dir>/libssl_3.so"
)O para qmake utilice:
ANDROID_EXTRA_LIBS += \
<path_to_libs_dir>/libcrypto_3.so \
<path_to_libs_dir>/libssl_3.soNota: Si se utilizan varias arquitecturas, incluya las bibliotecas OpenSSL de todas ellas.
Utilizando Qt Creator, es posible añadir bibliotecas adicionales. Para obtener más información, consulte Qt Creator: Añadir bibliotecas a proyectos CMake y Qt Creator: Añadir bibliotecas a proyectos qmake.
Construcción de OpenSSL para Android
Las siguientes instrucciones le guiarán para compilar las librerías OpenSSL manualmente:
- Descarga los fuentes de OpenSSL.
- Extraiga los fuentes a una carpeta y navegue a esa carpeta utilizando la CLI.
Nota: Si tu plataforma de desarrollo es Windows, necesitas
msysconperl5.14 o posterior para construir OpenSSL. - Añade la cadena de herramientas LLVM de Android a tu ruta, por ejemplo, para su uso en Linux:
export PATH=~/Android/Sdk/ndk/27.2.12479018/toolchains/llvm/prebuilt/<host>/bin:$PATH
El SDK de Android se instala comúnmente por Qt Creator o Android Studio en las siguientes ubicaciones:
- Linux: ~/Android/Sdk/
- macOS: ~/Library/Android/sdk/
- Windows: C:\Users\<USER>\AppData\Local \Android \Sdk \
- Configurar las fuentes OpenSSL para construir para Android utilizando el siguiente comando, donde <arch> puede tomar un valor de:
arm,arm64,x86ox86_64:./Configure shared android-<arch> -D__ANDROID_API__=28
Nota: Debe tener en cuenta la posibilidad de activar o desactivar las funciones SSL en función de las restricciones legales de la región en la que esté disponible su aplicación. Para obtener más información sobre las funciones configurables, consulte Opciones de configuración de OpenSSL.
- Sin un sufijo, Android carga las bibliotecas del sistema
libcrypto.soylibssl.so. Estas pueden ser versiones diferentes de tus librerías o de lo que Qt espera. Para asegurarse de que las aplicaciones Qt pueden cargar las librerías OpenSSL construidas manualmente, ejecute los siguientes comandos:make -j$(nproc) SHLIB_VERSION_NUMBER= build_libs mkdir -p ${out_path} cp libcrypto.so ${out_path}/libcrypto_3.so cp libssl.so ${out_path}/libssl_3.so cd ${out_path} patchelf --set-soname libcrypto_3.so libcrypto_3.so patchelf --set-soname libssl_3.so libssl_3.so patchelf --replace-needed libcrypto.so libcrypto_3.so libssl_3.soNota: Aunque las bibliotecas compartidas
libcryptoylibsslque no están versionadas, tendrán un sufijo _3.A continuación, establezca la variable de entorno en su archivo main.cpp:
qputenv("ANDROID_OPENSSL_SUFFIX", "<custom_suffix>");
Nota: Android no carga bibliotecas versionadas.
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.