无法从Java Android cocos2d-x调用Native方法

时间:2013-10-02 03:58:42

标签: java c++ java-native-interface native-code

我正在尝试调用我在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].

知道为什么会这样吗?

0 个答案:

没有答案