¿Cuál es el significado exacto de la versión de la plataforma Android NDK en comparación con el nivel API?
Tengo una aplicación de Android con minSdkVersion.apiLevel
establecido en 18 targetSdkVersion.apiLevel
establecido en 23. En consecuencia, establezco la platformVersion
NDVSion a 18.
Desafortunadamente, después de agregar OpenSSL a la mezcla, la biblioteca JNI ahora falla al vincular:
- Problemas de construcción de openssl para Android
- Compilación de la última versión de OpenSSL para Android
- Cómo construir Openssl para Android en Windows con ndk8?
- Construye la librería Android-openssl para la plataforma 2.1
- Android HttpsUrlConnection javax.net.ssl.SSLException La conexión se cerró por el error del apretón de manos del par al usar el truststore local
/Users/pol/Downloads/Cross/External/Android-Libraries/openssl-1.0.2g/lib/libcrypto.a(ui_openssl.o):ui_openssl.c:function read_string_inner: error: undefined reference to 'signal' /Users/pol/Downloads/Cross/External/Android-Libraries/openssl-1.0.2g/lib/libcrypto.a(ui_openssl.o):ui_openssl.c:function read_string_inner: error: undefined reference to 'tcsetattr' /Users/pol/Downloads/Cross/External/Android-Libraries/openssl-1.0.2g/lib/libcrypto.a(ui_openssl.o):ui_openssl.c:function read_string_inner: error: undefined reference to 'tcsetattr' /Users/pol/Downloads/Cross/External/Android-Libraries/openssl-1.0.2g/lib/libcrypto.a(ui_openssl.o):ui_openssl.c:function open_console: error: undefined reference to 'tcgetattr'
El problema desaparece si se establece platformVersion
a 21 (no funciona en 19).
¿Qué significa esto para la aplicación de Android si tiene un nivel de API de 18, pero la biblioteca de JNI se vinculó para 21? ¿Se bloqueará en el lanzamiento en un dispositivo con 4.3?
No puedo imaginar el símbolo de signal
que falta de 4.3 sin embargo. ¿Es esto un error NDK?
- ¿Cómo apuntar OpenSSL a los certificados raíz de un dispositivo Android?
- Transferencia PrivateKey de KeyStore, uso en OpenSSL con JNI
- Construyendo OpenSSL para Android (ARMv7) en Win32
- Protocolos SSL / TLS y suites de cifrado con AndroidHttpClient
- Generar clave de hash para la aplicación utilizando facebook sdk
- Certificado de Libcurl Pinning trabajando en el iPhone pero no en Android
- SSLHandshakeException Ancla de confianza para ruta de certificación no encontrada Android HTTPS
- OpenSSL compilado para ejecutarse en la arquitectura x86 de Android
Esto es exactamente lo que le sucederá a su biblioteca compartida cuando lo instale en android-20 o anterior: no se cargará. No debería sorprendernos que la signal
estuviera ausente: el tiempo de ejecución de Android nunca fue diseñado para ejecutar herramientas de línea de comandos como curl.