我正在尝试调用我在Android中的Java类中定义的C类中的Native方法。这两个代码都显示在下面。
.cpp的
NativeCall.h
// NativeCall.h
#ifdef __cplusplus
#include "platform/android/jni/JniHelper.h"
#include "NativeInterface.h"
using namespace std;
extern "C" {
#endif
JNIEXPORT jstring JNICALL Java_com_sugarcube_Connect_JniHelper_makeNativeCall(JNIEnv *env, jobject thiz, jstring request)
{
string returnValue = NativeInterface::getInstance()->processApiCall(env->GetStringUTFChars(request,0));
jstring str = env->NewStringUTF(returnValue.c_str());
return str;
}
#ifdef __cplusplus
}
#endif
NativeCall.cpp
#include "NativeCall.h"
Java代码
public String invokeNativeCall(String request){
return makeNativeCall(request);
}
private native String makeNativeCall(String request);
PackageName:com.sugarcube.Connect JavaClassName:JniHelper.java
此外,我已将NativeCall.cpp添加到我的android.mk文件
每当我尝试执行invokeNativeCall时,它都会告诉
JniHelper.makeNativeCall(String) line: not available[native method][local variables unavailable].
知道为什么会这样吗?