5

私はAndroidJavaプラグインでユニティに取り組んでいます。ユニティで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;
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

JNIには文字列型はありません

はいあります。それは「jstring」と呼ばれます。

于 2013-09-14T01:45:35.783 に答える