我正在与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函数并接收string
值。当我试图传递字符串值时,它对我不起作用。问题出在这里,因为JNI中没有字符串类型
jvalue[] myArray = new jvalue[1];
myArray[0].i =testvalue;
答案 0 :(得分:2)
您要查找的数据类型是jstring,在JNI中,您可以使用newString
或newStringUTF
答案 1 :(得分:1)
我解决了它兄弟,这就是我想要的myArray [0] .l = AndroidJNI.NewStringUTF(凭证);
答案 2 :(得分:0)
JNI中没有字符串类型
是的。它被称为'jstring'。