首先,我有一个JNIEXPORT方法,如下所示:
JNIEXPORT void JNICALL Java_com_app_osap_Native_nativeProcessImage(JNIEnv *env, jobject thiz, jstring imagePath){
// ...
handle(data);
}
然后我在同一个cpp文件中编写另一个方法:
void handle(int data[]){
}
但是我在编译源代码时遇到了这个错误:
'handle' was not declared in this scope
请告诉我我的问题是什么以及如何解决。
提前致谢!
答案 0 :(得分:3)
由于您不使用标头,因此需要在JNI函数之前声明句柄函数。或者,您可以开始使用包含函数声明的标头,然后将其包含在cpp文件中。像:
test.h:
void handle(int data[]);
TEST.CPP
#include test.h
不要忘记在Android.mk中将标题添加到您的模块中:
include $(CLEAR_VARS)
LOCAL_MODULE := test
LOCAL_SRC_FILES := path/to/test.cpp
LOCAL_C_INCLUDES := path/to/test.h #This is the header file you created
include $(BUILD_SHARED_LIBRARY)