JNI——传入与返回String字符串
部分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); }