JNA para android
- Tengo un conjunto enorme de los archivos de fuente de C que cuando resultado compilado en una biblioteca compartida.
- 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
- Cuándo utilizar JNIEXPORT y JNICALL en Android NDK?
- Cómo ver la tabla de referencia local de JNI?
- JNI: Pasar varios parámetros en la firma de función para GetMethodID
- ¿Cómo compartir una variable entre Java y C en android JNI?
- C ++ ifstream.getline () significativamente más lento que BufferedReader.readLine () de Java?
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.
- Casting un tipo largo de C ++ a un jlong de JNI
- Señal fatal 11 (SIGSEGV)
- Temporizador de alta precisión en Android JNI
- Accede al GPS en Android desde C ++
- Matriz de bytes de retorno en jni android?
- Enviar cadena C ++ a Java a través de JNI
- Compilación de Android JNI para OpenCV en Mac OSX
- ¿Está proporcionando una implementación para todos los métodos nativos requeridos?
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 :
- Determinar la distancia entre un punto de acceso WiFi y un dispositivo
- Cómo deshabilitar el parpadeo de textview onClick