JNA para android

  1. Tengo un conjunto enorme de los archivos de fuente de C que cuando resultado compilado en una biblioteca compartida.
  2. También hay una versión de Java que utiliza JNA para acceder a la biblioteca compartida ya construida. Estos archivos están disponibles en otro tarro. Este tarro depende de jna.

Primero compilé los archivos c y luego compilé el código java. En java, no hay errores. El problema surge sólo cuando intento conectarlo a android. Podría fácilmente compilar los archivos c usando la herramienta android 'ndk-build'. Esto crea con éxito la biblioteca compartida.

No puedo importar JNA en un proyecto Android debido a algo similar a esto: Android – JNA library

Sin embargo, no entiendo los comentarios en ese post. ¿Es posible usar JNA en Android?

He intentado eliminar algunos archivos de jna.jar (los archivos correspondientes a otras arquitecturas). Sin embargo, tengo el mismo error que dice: La biblioteca 'jna.jar' contiene bibliotecas nativas que no se ejecutan en el dispositivo. Incluyendo: "com / sun / jna / android-arm / libjnidispatch.so"

El jar (el que tiene el contenedor java para la biblioteca C), se importa y puedo escribir código. Pero, todavía obtener 'ExceptionInInitializerError' con el primer objeto que crear utilizando las clases en este frasco.

No estoy bien versado en java. Sólo tengo el conocimiento de un novato. Por favor, tenga paciencia conmigo y ayude. Gracias.

Tal vez esto es lo que buscas:

  • Agregue las herramientas SDK / NDK de Android en PATH (utilizado por nativo / Makefile).
  • Establezca la variable de entorno NDK_PLATFORM (utilizada por native / Makefile).
  • Construir usando: ant -Dos.prefix = android-arm dist.
  • Las pruebas deben ejecutarse en la plataforma de destino, no en la plataforma de compilación.
  • Añada dist / jna.jar y / o dist / platform.jar a su aplicación, según sea necesario.
  • Si utilizas android-maven-plugin, jna.jar se puede utilizar tal como está (las bibliotecas nativas se copiarán automáticamente en tu proyecto).
  • Si está usando el complemento Eclipse de Google, debe eliminar manualmente libjnidispatch.so de jna.jar / lib / armeabi y agregarlo al directorio libs / armeabi de su proyecto.
  • Consulte http://code.google.com/p/android/issues/detail?id=17861 y http://developer.android.com/guide/practices/jni.html para obtener más información.

Copiado desde https://github.com/twall/jna/blob/master/www/AndroidDevelopmentEnvironment.md :

  • Embalaje RAW AAC en el contenedor m4a?
  • No se ha encontrado JNI_Onload () y VM ha cerrado
  • La compilación con NDK da error para los archivos de encabezado incluidos correctamente
  • Recuperar android.os.Build ... propiedades del sistema mediante la aplicación puramente nativa de Android
  • Cómo capturar excepciones generadas con código nativo que se ejecuta en Android
  • JNI de Android no encuentra archivos de encabezado de biblioteca estándar de C ++
  • Error :() referencia indefinida a `__android_log_write 'ERROR?
  • Recibo un mensaje de error cuando ejecuto JNI android app A / libc: Señal fatal 11 (SIGSEGV) en 0xdeadd00d (código = 1), hilo 17729
  • Multidex Android, UnsatisfiedLinkError - no pudo encontrar el archivo .so
  • ¿Qué dispositivos Android admiten jni?
  • Android Cómo leer JNI Core Dump FIles
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.