Подтвердить что ты не робот

Использование моей собственной предварительно созданной общей библиотеки в проекте Android NDK

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

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

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

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

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

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

и включить его в основной проект:

LOCAL_SHARED_LIBRARIES: = libMyaccessories.so

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

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

4b9b3361

Ответ 1

В документации Android.mk проверьте описание PREBUILT_SHARED_LIBRARY script. Поместите файл .so в каталог lib (not 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)