2

大家好,谁能告诉我如何从unity c#调用java方法。我尝试了以下方法,但它对我不起作用。

在统一中:

void OnGUI () {
    string somestring;
    AndroidJavaClass jc= new    AndroidJavaClass("com.example.pluginsample.MainActivity");
    AndroidJavaObject jo = jc.GetStatic<AndroidJavaObject>("instance");
    somestring = jo.Call<string>("Foo");
    GUI.Label (new Rect (20, 20, 100, 20), somestring);
}

在 Java 类中:

public String Foo()
{
    return "Hello";        
}

请帮助。我被卡住了。在此先感谢。

4

4 回答 4

0

The similar question I saw on unity forum. Do have a look at the question and solution for that. Its working.

于 2013-10-07T05:45:57.237 回答
0

究竟什么“不起作用”?有例外吗?

检查您的 java 类是否有一个返回 java 对象的 instance() 方法:

public String Foo()
{
    return "Hello";        
}

public static MainActivity instance() {
    return new MainActivity();
}
于 2013-09-13T14:31:48.663 回答
0

有几件事需要检查:

  1. 您是否已向 AndroidManifest.xml 声明了您的插件活动?
  2. instance您的插件活动中是否有任何类属性(静态变量)?
  3. 如果以上两点没有帮助,您可以将Foo方法设为静态吗?

让我知道这个解决方案是否仍然不起作用。

于 2013-10-07T01:16:56.670 回答
0

将函数“Foo”设为公共静态,如下所示

public static String Foo()
{
    return "Hello";        
}
于 2017-12-13T04:03:57.487 回答