私はAndroidJavaプラグインを使用して、次のようにUnityでJava関数を呼び出しています。
static IntPtr cls_Activity;
static IntPtr fid_Activity;
static IntPtr obj_Activity;
static IntPtr kdataActivityClass;
static IntPtr startAdsMethod;
void Start () {
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(PakdataActivityClass, "getURL","()V");
Debug.Log("obj_Activity"+obj_Activity);
Debug.Log("kdataActivityClass"+kdataActivityClass);
Debug.Log("Method"+startAdsMethod);
if (AndroidJNI.IsInstanceOf(obj_Activity, kdataActivityClass) != false)
{
jvalue[] myArray = new jvalue[1];
AndroidJNI.CallStaticStringMethod(obj_Activity, startAdsMethod, myArray);
}
問題は、クラスにアクセスできるのに、クラスのメソッドがnullを返すことです。
Debug.Log("obj_Activity"+obj_Activity);
=> retuns value
Debug.Log("kdataActivityClass"+kdataActivityClass);
=> returns => value
Debug.Log("Method"+startAdsMethod);
=> retunnsnull<===これがこのメソッドの問題です
ハードコードされた文字列を返す必要がありますが、Unityでは機能しません。
ヘルプは大歓迎です。ありがとう