1

我正在尝试从 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);

包名:com.sugarcube.Connect JavaClassName:JniHelper.java

我也将 NativeCall.cpp 添加到我的 android.mk 文件中

每当我尝试执行 invokeNativeCall 时,它都会告诉

JniHelper.makeNativeCall(String) line: not available[native method][local variables unavailable].

知道为什么会这样吗?

4

0 回答 0