簡體   English   中英

Android Java插件對方法的調用返回零

[英]Android java plugin call to method returns zero

我正在使用android java插件統一調用我的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); =>調整值Debug.Log("kdataActivityClass"+kdataActivityClass); =>返回=>值
Debug.Log("Method"+startAdsMethod); =>重設null <===這是此方法的問題

應該返回一個硬編碼的字符串,但不能統一工作。

非常感謝您的幫助。 謝謝

使用javap檢查getURL方法jni簽名(是否已將第三個參數放在相同的位置?):

cd <pathToUnityUrlPluginClass>

javap -p -s <UnityUrlPlugin>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM