Intereting Posts
Какова цель `конвертирования 'в адаптере ListView? Как получить Lollipop «гамбургер» в качестве значка ящика в стандартном приложении Fragment (без использования AppCompat)? RecyclerView 23.2.x height = 0dp вызывает onBind вызывает все элементы и scrollToPosition не работает Существует ли замена виджета Gallery с View recycling? Установка значений и отображение текста в Android Spinner Проект Javadoc для Android в Eclipse не выполняется с помощью NullPointerException Как обнаружить левый и правый наклон устройства Android, установленного с помощью акселерометра? Как восстановить данные с сервера DDMS и Ftp? Android: Viewpager и FragmentStatePageAdapter Требуется версия Gradle 1.6. Текущая версия – 1.8-20130730220035 + 0000 Поддерживают ли константы кода версии для Android более старые версии? Проблема с утечкой базы данных Content Content Provider Android-приложение: напишите правильный фильтр намерений Robolectric 3.0 не работает с AppCompat 21+ Как запустить Android-приложение из URL-адреса в Android?

Android NDK, использовать функции из скомпилированной библиотеки .so в другом проекте Android NDK

Моя проблема в том, что я не знаю, как вызвать функцию. Я успешно скомпилировал библиотеку NDK пространственно-андроид и не имею никаких проблем с ее использованием в приложении Android для Android. Но я понятия не имею, как именно использовать его в другом проекте NDK. Я добавил его в файл 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) 

И библиотека libjsqlite.so (android-spacesite) успешно добавлена ​​в: libs / armeabi / libjsqlite.so С этого момента я не знаю, как использовать эту библиотеку. Как вызвать любую функцию из этой библиотеки?

Из того, что я понимаю из-за вопроса, вы выполнили такой файл, и он запускается для того, чтобы разрешить проект A и его работу. Теперь вы хотите использовать его в Project B. Вы не можете напрямую использовать библиотеку компиляции в Project B. Проблема заключается в ваших подписях функций внутри вашего кода. Для разных имен пакетов будет изменена соответствующая сигнатура функции.

 JNIEXPORT jint JNICALL Java_com_your_packageA_class_method(JNIEnv *d, jobject e, jstring f) { //some action } 

Вам нужна банка, которая содержит классы для вызова собственных функций с вашим скомпилированным таким файлом, чтобы сделать его доступным для Project B.

Вот как это будет работать. Project B сделает вызов jar, который сделает вызов скомпилированного файла и возвращает результат в A.