¿Se ha movido la ubicación de la biblioteca en Android 4.2.1?

Me enfrenté a un problema sospechoso cuando traté de actualizar mi aplicación Android para trabajar en 4.2.1, Nexus 7. Estoy usando mi propia biblioteca .so, cuya inclusión estaba funcionando bien en Android versión 4.1, antes de actualizar. Ahora tengo todo tipo de problemas.

Comparé los registros al desplegar en un dispositivo androide que funcionaba 3.2.1 y mi Nexus 7 que funcionaba 4.2.1. La biblioteca se está colocando en dos lugares diferentes, lo que podría estar causando mis problemas.

ANDROID 3.2.1:

Trying to load lib /data/data/com.my.app/lib/lib_my_app_jni.so 0x407e8218 Added shared lib /data/data/com.my.app/lib/lib_my_app_jni.so 0x407e8218 

ANDROID 4.2.1 (Nexus 7):

 Trying to load lib /data/app-lib/com.my.app-1/lib_my_app_api_jni.so 0x4257b6c8 Added shared lib /data/app-lib/com.my.app-1/lib_my_app_api_jni.so 0x4257b6c8 

¿Por qué todo de repente se coloca en los misterios app-lib dir? ¿Cómo puedo forzarlo de nuevo? ¿Y dónde está documentado?

Gracias…

Desde Android 4.2, se ha añadido una función multiusuario en los frameworks android.

Y varias ubicaciones de directorio se cambian, pero la API no se cambia, como Context.get Dir () o Context.get? Path (). (solo se cambia el valor de retorno)

También la plataforma android hace un enlace simbólico para el legado.

Estos cambios no están documentados.

Voy a responder a mi propia pregunta, porque terminamos implementando nuestra biblioteca de forma diferente a la que originalmente se pensaba.

El problema era que estábamos copiando los certificados de acceso y más, al directorio en el que se encontraba la biblioteca. Este método funcionó bien en versiones anteriores de Android, donde se encontraba en el archivo data / data / package /. Pero en versiones más recientes de Android (data / app-lib / package /) esa ubicación es de sólo lectura.

Lo que hicimos fue mover la ubicación, simple. Gracias por el aporte.

  • Detenga el subproceso Java que llama a la función JNI
  • Mejor opción para representar video para iOS y Android
  • Android, genera archivos de encabezado jni con javah, muestra error que no puede encontrar org.opencv.core.Mat
  • Llamar a System.loadLibrary dos veces para la misma biblioteca compartida
  • ¿Cualquier manera simple o fácil de depurar el código de Android NDK?
  • Extraño: no se puede cambiar el valor de Integer en jni
  • Desbordamiento de ReferenceTable (máx = 512) JNI
  • QNetwork error cuando se utiliza Qt lib con la aplicación JNI Android nativa
  • JNIEXPORT y JNICALL en Android NDK
  • NDK: cómo construir una lib, por lo que la aplicación puede trabajar en brazo (s), x86, etc?
  • Cómo devolver una matriz de JNI a Java?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.