繁体   English   中英

从统一C#调用Java方法

[英]calling java method from unity c#

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

在Unity中:

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";        
}

请帮助。我被困住了。谢谢。

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

检查您的Java类是否具有返回Java对象的instance()方法:

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

public static MainActivity instance() {
    return new MainActivity();
}

有几件事要检查:

  1. 您是否已将插件活动声明为AndroidManifest.xml?
  2. 插件活动中是否有任何instance类属性(静态变量)?
  3. 如果以上两点无济于事,您可以使Foo方法为静态方法吗?

让我知道此解决方案是否仍然无效。

我在统一论坛上看到过类似的问题。 请查看有关此问题和解决方案 它的工作。

使函数“ Foo”成为公共静态,如下所示

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM