使用jni androidjni.getmethodid与字符串参数统一

 2023-01-20    282  

问题描述

我正在与Android Java插件进行Unity工作,我试图从Java呼叫Unity的功能,并成功地工作了.

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

使用jni androidjni.getmethodid与字符串参数统一

中没有字符串类型

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

推荐答案

我解决了它的兄弟,这就是我想要myArray [0] .l = androidjni.newstringutf(recertentials);

其他推荐答案

您要寻找的数据类型是JSTRING,在JNI中,您可以使用newString或newStringUTF

创建它

其他推荐答案

JNI中没有字符串类型

是的.这就是所谓的” Jstring”.

以上所述是小编给大家介绍的使用jni androidjni.getmethodid与字符串参数统一,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对77isp云服务器技术网的支持!

原文链接:https://77isp.com/post/26018.html

=========================================

https://77isp.com/ 为 “云服务器技术网” 唯一官方服务平台,请勿相信其他任何渠道。