最近在用U3D做一個簡單的迷宮游戲,在項目中利用Unity制作游戲場景,在android中調用游戲場景,並在游戲結束后調用安卓方法,傳遞參數,退出游戲場景
查找網上資料,基本上Unity調用安卓的寫法都是:
AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); AndroidJavaObject jo = jc.GetStatic<AndroidJavaObject>("currentActivity"); jo.Call("Method",arg);
參考這段代碼,將android的包名和類型已經方法名修改成自己的之后,調用的時候發現報錯:
AndroidJavaException: java.lang.NoSuchFieldError: no "Ljava/lang/Object;" field "currentActivity" in class "Lcom/xqlh/maze/activity/PlayActivity;" or its superclasses java.lang.NoSuchFieldError: no "Ljava/lang/Object;" field "currentActivity" in class "Lcom/xqlh/maze/activity/PlayActivity;" or its superclasses
問題出現在“currentActivity” 但是網上很多資料都沒有提及currentActivity是干嘛的,怎么來的,后來參考文章http://blog.csdn.net/m0_38096376/article/details/69567409
嘗試在android中自己定義了一個currentActivity,解決了問題