Android NDK, utilizan las funciones de la biblioteca compilada .so en otro proyecto androide NDK
mi problema es que, no sé cómo llamar a las funciones de la biblioteca .so. He compilado con éxito la biblioteca NDK spatialite-android y no tengo problemas para usarla en la aplicación Java android. Pero no tengo ni idea de cómo usarlo exactamente en otro proyecto de NDK. Lo he añadido en el archivo Android.mk:
APP_ABI := armeabi armeabi-v7a APP_PLATFORM := android-8 LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := UsingSpatialite LOCAL_SRC_FILES := UsingSpatialite.c LOCAL_LDLIBS := -llog -lGLESv1_CM include $(BUILD_SHARED_LIBRARY) LOCAL_PATH := /home/spatialite/jni include $(CLEAR_VARS) LOCAL_MODULE := libjsqlite LOCAL_SRC_FILES := libjsqlite/libjsqlite.so include $(PREBUILT_SHARED_LIBRARY)
Y la biblioteca libjsqlite.so (android-spatialite) se agrega con éxito en: libs / armeabi / libjsqlite.so Desde este punto, no sé cómo usar esa biblioteca. ¿Cómo llamar a cualquier función de esa biblioteca?
- Java.lang.UnsatisfiedLinkError: No se pudo cargar eposprint: findLibrary returned null
- Android NDK aplicación se estrelló en ejecutar en funciones que ni siquiera llamado
- Cómo utilizar bibliotecas extra * .so en Android Studio y NDK
- ¿Cómo forzar a Android Studio a construir con la biblioteca actualizada NDK, sin tener que limpiar y construir todo el proyecto?
- Módulos no definidos al cambiar a una versión más reciente de android ndk
- Ant construir proyecto Android con dependencia lib
- UnsatisfiedLinkError nativeLibraryDirectories = [/ vendor / lib64, / system / lib64
- Los puntos de interrupción no funcionan al depurar la biblioteca nativa de Android en Visual Studio 2015
- Firma digital de una biblioteca compartida en Android
- Android NDK: Uso de la biblioteca libtool
- Creación de un paquete de biblioteca de Android que incluye un paquete externo (nativo o Java)
- Creación / búsqueda de bibliotecas compartidas desde el código fuente de Android
- No se pueden cargar archivos de biblioteca .so al hacer una aplicación de sistema
De lo que entiendo de la pregunta, usted ha cumplido un archivo así y funciona para deja para decir el proyecto A y su funcionamiento. Ahora, usted quiere utilizarlo en el Proyecto B. No se puede utilizar directamente la biblioteca de compilación en el proyecto B. El problema es su función de firmas dentro de su código. Para diferentes nombres de paquetes cambiará la firma de función correspondiente.
JNIEXPORT jint JNICALL Java_com_your_packageA_class_method(JNIEnv *d, jobject e, jstring f) { //some action }
Necesita un tarro que contiene clases para hacer llamadas a funciones nativas con su archivo compilado para que sea accesible al Proyecto B.
Así es como funcionará Proyecto B hará una llamada a jar que hará llamada a compilado para archivo y devolver el resultado a A.
- Android: ViewFlipper que restablece mi marquesina TextView
- Cómo cambiar el estilo de menú en dispositivos Android 4.x con botón de menú?