Я пытаюсь вызвать метод Native, который я определил в классе C из класса Java в Android. Оба кода отображаются ниже.
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].
Есть идеи, почему это происходит?
Задача ещё не решена.
Других решений пока нет …