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);

PackageName : 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