Использование моей собственной готовой библиотеки в проекте Android NDK - PullRequest
14 голосов
/ 29 мая 2011

Я наткнулся на этот пост, это почти то, что мне нужно:

Как скомпилировать статическую библиотеку с помощью Android NDK?

В принципе, тамнекоторые части в моем проекте никогда не обновляются, поэтому я стараюсь не создавать их каждый раз, когда обновляю файл Android.mk, чтобы добавить что-то.

Приведенный выше ответ показывает, как получитьчасть кода встроена в отдельную статическую библиотеку, но когда я пытаюсь предварительно собрать приведенный выше код в отдельный файл Android.mk, он не будет собран сам по себе.Это кажется немного излишним ... Если мне нужно собрать их оба одновременно, тогда какой смысл создавать отдельную статическую библиотеку в любом случае?

И если я изменю Android.mk в отдельном проекте напрочитайте:

включите $ (BUILD_SHARED_LIBRARY)

и включите его следующим образом в основной проект:

LOCAL_SHARED_LIBRARIES: = libMyaccessories.so

тогда я получаю неразрешенную ссылку на (имя функции), возможно потому, что он не может найти общую библиотеку (которая находится в пути вызова)

Может кто-нибудь помочьменя с этим?

1 Ответ

11 голосов
/ 29 мая 2011

В документации к Android.mk проверьте описание скрипта PREBUILT_SHARED_LIBRARY.Поместите файл .so в каталог lib (не libs) и напишите рядом с ним файл Android.mk, который будет выглядеть примерно так:

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE := Myaccessories
LOCAL_SRC_FILES := libMyaccessories.so
LOCAL_C_INCLUDES := $(LOCAL_PATH)/../jni/include

include $(PREBUILT_SHARED_LIBRARY)
...