我正在为Android应用开发Unity,它使用原生Android插件。在它里面我使用AndroidJavaObject
的Call
方法。
如documentation中所述,方法的签名为:public void Call(string methodName, params object[] args);
我想将字符串数组发送到我的项目中:
string[] strings = new string[] { "string1", "string2", ...};
myAndroidJavaObject.Call("myMethod", strings);
并将其接收成Java代码:
public void myMethod(String[] strings){
// some code where I use strings
}
但我收到错误:AndroidJavaException: java.lang.NoSuchMethodError: no non-static method with name='myMethod' signature='(Ljava/lang/String;Ljava/lang/String;)V' in class Ljava.lang.Object;
有人能描述一下程序在这种情况下的行为吗?
2条答案
按热度按时间4ioopgfo1#
数组在发送到
AndroidJavaObject
时需要特殊处理。从this article中获取数组,您可以实现一个函数来处理它,如下所示:然后,您可以像这样呼叫函式:
jchrr9hc2#
您需要做的是将字符串数组转换为对象,如以下代码所示;