[英]Parameters send from Java to JNI are not being sent
我已經閱讀了有關如何將參數從Java發送到JNI函數的信息。 我第一次嘗試發送ArrayList,因為我試圖獲取Android電話簿。
經過很多問題后,我變得很簡單,可以完全確定要發送的是簡單參數(字符串)。
這是我對該函數的Java聲明:
public static native void nativeCallback(String params);
這是JNI函數:
JNIEXPORT void JNICALL
Java_example_nativeCallback(JNIEnv* env,jstring params)
我檢查並正在調用該函數。 我用它來查看是否實際上正在發送一個字符串:
int sizeOfChain = env->GetStringLenght(params);
std::ostringstream convert;
convert<<sizeOfChain;
convert.flush();
std::string finalString = convert.str();
打印finalString時為0。
這是從Java調用函數的方式:
nativeCallback("TEST_STRING");
另外,發送ArrayList作為jobjectArray有效嗎?
嘗試執行此操作以從jstring獲取C字符串
const char *str= env->GetStringUTFChars(params, NULL);
printf("String: %s\n", str);
env->ReleaseStringUTFChars(params, str);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.