5

我正在使用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);

使用上面的代码,我可以将intvalue 传递给我的 java 函数并接收stringvalue 。当我试图传递一个字符串值时,它对我不起作用。问题出在此处,因为 JNI 中没有字符串类型

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

3 回答 3

2

您要查找的数据类型是 jstring,在 JNI 中您可以使用newString或创建它newStringUTF

于 2012-06-07T06:22:11.083 回答
1

我解决了兄弟,这就是我想要的 myArray[0].l=AndroidJNI.NewStringUTF(credentials);

于 2013-09-16T11:50:52.310 回答
0

there is no string type in JNI

Yes there is. It's called 'jstring'.

于 2013-09-14T01:45:35.783 回答