我需要构建一个共享库,它将在 Android 应用程序示例中使用。此共享库必须使用先前静态库中包含的方法...
我有2个项目:
-- C++ 项目(用于使用 NDK 构建静态库 .a)。
--安卓库;带 JNI 接口。
我的 Android 库项目的层次结构是:
项目根
- 源代码
- 杰尼
- 包括
- 我的头文件.hpp
- prebuid(包含 .a 库)
- mylib.a
- jni.cpp
- 安卓.mk
- 包括
myHeader.hpp 文件:
char* myMethod(int a, int b);
jni.cpp 文件:
#include <jni.h>
#include <string.h>
#include <stdio.h>
#include "include/myHeader.hpp"
extern "C"
{
jstring Java_my_package_myMethod(JNIEnv* env, jobject obj, jint a, jint b);
}
...
安卓制作文件:
LOCAL_PATH := $(call my-dir)
#Build module for static library
include $(CLEAR_VARS)
LOCAL_MODULE := my_static_lib
LOCAL_SRC_FILES := prebuild/mylib.a
LOCAL_EXPORT_C_INCLUDES := include/myHeader.hpp
include $(PREBUILT_STATIC_LIBRARY)
#Build module for jni wrapper
include $(CLEAR_VARS)
LOCAL_MODULE := jni_wrapper_lib
LOCAL_SRC_FILES := jni.cpp
LOCAL_STATIC_LIBRARIES := my_static_lib
include $(BUILD_SHARED_LIBRARY)
当我尝试构建 JNI 项目时,出现以下错误:未定义对“myMethod(int a, int b)”的引用
有人可以解释我为什么会收到此错误吗?
非常感谢您的宝贵时间;