作者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://webptt.com/cn.aspx?n=bbs/AndroidDev/M.1409042284.A.B0A.html
1F:推 vcidt: 应该是你lib档案中没包到那个方法 可以查查 08/26 22:29
2F:→ euph: 请问没有包到那个档是什麽意思呢 因为我就两边个一个档而已 08/27 10:02
3F:→ euph: 包成JAR档之後也有确实复制了 在onCreate的时候有印出onCrea 08/27 10:03
4F:→ euph: 卡了一整天 有点小苦闷... 08/27 10:03
5F:推 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
6F:推 vcidt: 恭喜! 08/28 22:44
7F:→ euph: 谢谢~~~ 09/01 16:14