JNI。如何从jobject获取jstring并将其转换为char *

【字号: 日期:2024-03-02浏览:30作者:雯心
如何解决JNI。如何从jobject获取jstring并将其转换为char *?

jstring dateString = (jstring)(*env)->GetobjectField(env, stat, idDate);

……然后一切正常。

解决方法

到目前为止,这就是我所拥有的:我传递一个具有2个字段的对象:String和Integer作为参数,并且我想发送信息以在C部分中对其进行处理,这在当时并不重要…我抱怨在jstring声明

JNIEXPORT jint JNICALL Java_Tier3_NativeMethods_totalPalletsIn( JNIEnv *env,jclass cls,jobject stat) {jclass staticsitcs = (*env)->GetObjectClass(env,stat);// Here I try to get it using the IDjfieldID idDate = (*env)->GetFieldID(env,staticsitcs,'date','S');jstring dateString = (jstring)(*env)->GetStringRegion(env,stat,idDate);// Here converting whatever I get in jstring to char*char* date = (*env)->GetStringUTFChars(env,dateString,0);// Getting the 2nd field from the objectjfieldID idNumber = (*env)->GetFieldID(env,'amount','I');jint amount = (*env)->GetDoubleField(env,idNumber);// Calling C methodjint totalPallets = checkTotalPalletsIn(date,amount);(*env)->ReleaseStringUTFChars(env,date);return totalPallets;}

我想念什么?

相关文章: