簡體   English   中英

從Java發送到JNI的參數未發送

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM