считать создание собственной библиотеки (назовем ее testLib), содержащей два класса JNITestLib.h и JNITestLib.cpp. Эта библиотека использует другую разделяемую библиотеку разработки кем-то другим (давайте назовем его libotherLib.so), содержащий два класса, называемые OtherLib.cpp и OtherLib.hНеустранимая ошибка: Класс: Нет такого файла или каталога
Ниже мои файлы
Android.mk:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := otherLib-prebuilt
LOCAL_SRC_FILES := $(LOCAL_PATH)/library/libotherLib.so
include $(PREBUILT_SHARED_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := testLib
LOCAL_SHARED_LIBRARIES := otherLib-prebuilt
LOCAL_SRC_FILES += com_example_JNITestLib.cpp
LOCAL_LDLIBS := -llog
include $(BUILD_SHARED_LIBRARY)
JNITestLib.cpp:
#include "com_example_JNITestLib.h"
#define LOG_TAG "Test"
JNIEXPORT void Java_com_example_JNITestLib_startTest
(JNIEnv *env, jobject)
{
ALOGD("startTest JNI");
}
JNITestLib.h:
#include <jni.h>
#include "Debug.h"
#include "OtherLib.h" //Problem here!!!!
JNIEXPORT void Java_com_example_JNITestLib_startTest
(JNIEnv *env, jobject);
Моя проблема в том, я получаю следующее сообщение об ошибке после выполнения: NDK-сборки -C [project_path]/приложение/SRC/главная/JNI /:
fatal error: OtherLib: No such file or directory
#include OtherLib.h
^
Я также попытался изменить свой файл Android.mk как:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := testLib
LOCAL_SRC_FILES += com_example_JNITestLib.cpp
LOCAL_LDLIBS := -llog
LOCAL_LDLIBS += -l$(LOCAL_PATH)/library/libotherLib.so
include $(BUILD_SHARED_LIBRARY)
Но получить:
This is likely to result in incorrect builds. Try using LOCAL_STATIC_LIBRARIES or LOCAL_SHARED_LIBRARIES instead to list the library dependencies of the current module
Обратите внимание, я не могу получить OtherLib.h, потому что он входит в libotherLib.so
Есть ли у кого-нибудь идеи решить мою проблему, пожалуйста?
Дело в том, что у меня нет файла заголовка. Этот родной lib является третьей либой, разделяемой другим человеком. – suns9
Возможно использование общей библиотеки без соответствующих заголовков, но не рекомендуется. Я хотел бы попросить этого человека отправить вам файлы заголовков. –