作者euph (咬咬嚼嚼猴子口味)
看板AndroidDev
標題[問題] 請問在unity裡呼叫Android Plugin的問題
時間Tue Aug 26 16:38:01 2014
小弟為Android開發新手
現在寫了一個簡單的範例要在unity裡呼叫Android的Plugin
可是會一直出現這樣的錯誤
AndroidJavaException: java.lang.NoSuchMethodError:
no method with name="ExecuteCommand"
(ExecuteCommand為我所要呼叫Androi裡的函數)
我兩邊的CODE大概是這樣的
執行的結果 onCreate和LoginButtonClick都有確實執行到
但是為什麼會無法呼叫到ExecuteCommand這個函數
還請各位有經驗的前輩們幫我抓一下錯誤是卡在那裡
感謝感謝....
Android端 xxxxxxxxInterface.java----------------------
public class xxxxxxxxInterface extends UnityPlayerActivity
{
Context mContext = null;
@Override
public void onCreate(Bundle savedInstanceState)
{
Log.i("xxxxxxxxInterface Android", "onCreate");
super.onCreate(savedInstanceState);
mContext = this;
}
public String ExecuteCommand(String strCommand,Object... params)
{
Log.i("xxxxxxxxInterface Android", "ExecuteCommand: " + strCommand);
if(strCommand.equals("Login"))
{
return Login();
}
}
}
Unity端 xxxxxxxxInterface.cs----------------------
public class xxxxxxxxxInterface : MonoBehaviour {
AndroidJavaClass m_jc = null;
AndroidJavaObject m_jo = null;
void Start ()
{
Debug.Log ("Start Init");
m_jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
if (m_jc == null)
{
return;
}
m_jo = m_jc.GetStatic<AndroidJavaObject>("currentActivity");
if (m_jo == null)
{
return;
}
Debug.Log ("Finish Init");
}
void Update () {
}
public void onLoginButtonClick()
{
Debug.Log ("Login Button Click");
if (m_jc != null)
{
string result = m_jc.Call <string> ("ExecuteCommand", "Login");
Debug.Log ("result);
}
else
{
Debug.Log ("Login Fail");
}
}
}
--
樂於當宅男
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 122.212.40.178
※ 文章網址: http://www.ptt.cc/bbs/AndroidDev/M.1409042284.A.B0A.html
推 vcidt: 應該是你lib檔案中沒包到那個方法 可以查查 08/26 22:29
→ euph: 請問沒有包到那個檔是什麼意思呢 因為我就兩邊個一個檔而已 08/27 10:02
→ euph: 包成JAR檔之後也有確實複製了 在onCreate的時候有印出onCrea 08/27 10:03
→ euph: 卡了一整天 有點小苦悶... 08/27 10:03
推 vcidt: 你的JAR檔有沒有打包到那個方法呢? 用JD-GUI查一下 08/27 23:35
結果我自己找出問題了
從UNITY端呼叫函數時 像這樣的 不定數參數是無法被認識的
所以會完全找不到
public String ExecuteCommand(String strCommand,Object... params)
如果是預先宣告好參數個數(無參數或是一個參數這樣)
就可以順利呼叫到了
※ 編輯: euph (122.212.40.178), 08/28/2014 11:53:26
推 vcidt: 恭喜! 08/28 22:44
→ euph: 謝謝~~~ 09/01 16:14