【问题标题】:calling java method from unity c#从统一 c# 调用 java 方法
【发布时间】:2023-03-11 15:37:01
【问题描述】:

大家好, 谁能告诉我如何从统一 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";        
}

请帮忙。我卡住了。提前致谢。

【问题讨论】:

    标签: c# java android plugins unity3d


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      我在统一论坛上看到的类似问题。请查看问题和solution。它的工作。

      【讨论】:

        【解决方案3】:

        有几件事需要检查:

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

        如果这个解决方案仍然不起作用,请告诉我。

        【讨论】:

          【解决方案4】:

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

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

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

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2012-03-28
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多