簡體   English   中英

從 java 傳遞給 jni 的參數給了我奇怪的值

[英]argument passed to jni from java are giving me weird values

我正在嘗試從 android 應用程序中的 Java 代碼調用 JNI function,調用了 function 但 JNI function 中的參數值與 function.function 中傳遞的參數值不同

這是我的 java 聲明和電話:

public native void setIA(Integer model);
setIA(1);

這是我的 JNI function

extern "C" JNIEXPORT void JNICALL
Java_com_sfy_vitaltechnics_Utils_Parameters_setIA(JNIEnv *env, jobject thiz, jint model) {
    LOGD( "This is a number from JNI: %d", model );
}

我得到像 -578062932 這樣的值,但它從來都不是相同的值。

我嘗試了幾種轉換和類型的爭論(long、double、float、string 和 thir java 等價物)。 每次它給我奇怪的值(對於字符串它給我非 UTF-8 字符)我認為問題來自我聲明 function 的方式但我不確定

Integer對應於 C 中的jobject ,因此您應該更改 C function 或將 java 聲明更改為setIA(int model); 匹配現有的 C function。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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