结合使用JNI AndroidJNI.GetMethodID和字符串参数

Sho*_*med 5 c# java-native-interface unity-game-engine

我正在与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);
Run Code Online (Sandbox Code Playgroud)

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

jvalue[] myArray = new jvalue[1];
myArray[0].i =testvalue;
Run Code Online (Sandbox Code Playgroud)

Sho*_*med 1

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