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

2024-03-10

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

您正在寻找的数据类型是 jstring 并且在 JNI 中您可以使用以下命令创建它newString or newStringUTF

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

与字符串参数统一使用 JNI AndroidJNI.GetMethodID 的相关文章

随机推荐