Biblioteca no encontrada debido a targetSdkVersion (armeabi-v7a y libcryptopp.so)

He creado un proyecto de ejemplo que utiliza las bibliotecas nativas de C ++ de Crypto ++ y el NDK para generar pares de claves ECDH. Usted puede encontrar el proyecto aquí .

Este proyecto se ejecuta perfectamente bien en la mayoría de los dispositivos android (corriendo en un puñado de dispositivos 4.4 y 5.0). Sin embargo, recientemente he ejecutado la aplicación en un Nexus 5 y Nexus 7, ambos con Android 6.0.1, y la aplicación se estrelló con el siguiente error.

java.lang.UnsatisfiedLinkError: dlopen failed: library "./obj/local/armeabi-v7a/libcryptopp.so" not found 

No estoy realmente seguro de lo que está pasando aquí, ya que el proyecto obviamente tiene estos archivos, y deberían estar bien. Esto parece que podría ser algún tipo de problema relacionado con NDK, pero no estoy realmente seguro.

He intentado quitar la carpeta armeabi-v7a, lo que obligó a la aplicación a utilizar los archivos armeabi en los dispositivos Nexus, pero no pudo encontrar esos archivos tampoco.

Abrí el apk y todos los archivos .so correctos están ahí con las carpetas apropiadas.

No estoy seguro de si se trata de un problema de Android Marshmallow, un problema de arquitectura de Nexus o algún problema de compilación de archivos .so. Soy nuevo en el uso de la NDK por lo que apreciaría ideas sobre dónde buscar para arreglar esto.

EDIT : Después de mirar en un poco más se ve como esto es un problema de Android Marshmallow. Un tema relacionado fue mencionado aquí . Cambiar mi targetSdkVersion a 22 "arregla" el accidente. Pero, obviamente, esto no es un arreglo futuro muy amigable.

Aparentemente en Android Marshmallow, cambiaron de OpenSSL a BoringSSL. Este es probablemente el problema raíz, como me imagino Crypto ++ utiliza la funcionalidad de OpenSSL y enlaces en contra de ella?

Todavía buscando alrededor de una corrección real que me permite targetSdkVersion 23 . Probablemente probar algunas de las soluciones enumeradas en este artículo y ver qué pasa.

EDIT 2 : Crypto ++ no enlaza con OpenSSL por lo que va esa teoría. La ayuda aquí todavía es apreciada.

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.