部分java 代码
声明:
private native String getLine(String prompt); //若有多个参数,则本地方法在实现的过程中参数顺序必须相同
static
{
//加载本地库
System.loadLibrary("myjni");
}
某处调用:
String resultString = getLine("Hi,C++~C~!");
Toast.makeText(getApplicationContext(), resultString, Toast.LENGTH_LONG).show();
JNIEXPORT jstring JNICALL Java_com_nan_callback_MyCallbackActivity_getLine
(JNIEnv* env, jobject obj, jstring prompt)
{
char buf[128];
const jbyte *str;
str = (*env)->GetStringUTFChars(env, prompt, NULL);
if (str == NULL)
return NULL;
LOGI("JAVA传给我:%s", str);
(*env)->ReleaseStringUTFChars(env, prompt, str);
sprintf(buf, "How are you, I am C++!");
return (*env)->NewStringUTF(env, buf);
}