c# – 使用JNI AndroidJNI.GetMethodID与字符串参数统一

我正在努力与
android
java插件合并我试图从统一调用
java的函数,它成功地工作.

        cls_Activity = AndroidJNI.FindClass("com/unity3d/player/UnityPlayer");
        fid_Activity = AndroidJNI.GetStaticFieldID(cls_Activity, "currentActivity", "Landroid/app/Activity;");

        obj_Activity = AndroidJNI.GetStaticObjectField(cls_Activity, fid_Activity);
        kdataActivityClass = AndroidJNI.FindClass("com/kdata/unitytest/UnityUrlPlugin");
startAdsMethod = AndroidJNI.GetMethodID(kdataActivityClass,"getURL","(I)Ljava/lang/String;");

        jvalue[] myArray = new jvalue[1];
        myArray[0].i =testvalue;
        gui.text=   AndroidJNI.CallStaticStringMethod(obj_Activity, startAdsMethod, myArray);

使用上面的代码,我启用了将int值传递给我的java函数并接收字符串值.当我试图传递字符串值时,它对我不起作用.问题出在这里,因为JNI中没有字符串类型

jvalue[] myArray = new jvalue[1];
myArray[0].i =testvalue;

最佳答案 您正在寻找的数据类型是jstring,在JNI中,您可以使用newString或newStringUTF创建它

点赞