java - Unity3D - 从 Android 调用静态方法

标签 java c# android unity3d unityscript

我创建了用于从 Unity3D 打开 Android Activity 的简单插件。使用参数触发方法有问题。有什么想法吗?

Java代码

 public static void Show(Activity activity, String value, String value2)
{
    Intent myIntent = new Intent(activity, DisplayAllUnits.class);
    myIntent.putExtra("key1",value);
    myIntent.putExtra("key2",value2);
    activity.startActivity(myIntent);
}

并在 onCreate 中

   //load units for All Units placement from values
    Bundle extras = getIntent().getExtras();
    if (extras != null) {
       value = extras.getString("key1");
       value2 = extras.getString("key2");

    }
    a_id=value;
    p_id=value2;

触发它的 C# 代码:

 var androidJC = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
    var jo = androidJC.GetStatic<AndroidJavaObject>("currentActivity");

    var jc = new AndroidJavaClass("secret.package;)but.it.s.correct");
    string value = "121";
    string value2 = "1400";
    jc.Call("Show", jo, "121", "1400");

什么是问题: - 没有参数,工作,有参数我有以下错误:

I/Unity: AndroidJavaException: java.lang.NoSuchMethodError: no non-static method "Ldisplay/io/unity3dplugin/DisplayAllUnits;.Show(Lcom.unity3d.player.UnityPlayerActivity;Ljava/lang/String;Ljava/lang/String;)V"
                                    java.lang.NoSuchMethodError: no non-static method "Ldisplay/io/unity3dplugin/DisplayAllUnits;.Show(Lcom.unity3d.player.UnityPlayerActivity;Ljava/lang/String;Ljava/lang/String;)V"

最佳答案

您正在调用 Call,这意味着调用一个实例方法。你要CallStatic ,它调用一个静态方法。

关于java - Unity3D - 从 Android 调用静态方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37937152/

相关文章:

Java异步订单

java - 使用相机 x android 减小视频文件大小

c# - 将通用参数传递给 MVC Action

c# - 使用 asp.net mvc 使用 stackexchange Api

android - 模拟器在 Android Studio 上打开并消失

java - 在隐藏字段值中插入换行符 - Java

java - 从文本域中读取值

c# - 创建一个 PerfMon 计数器来记录每次调用的平均值 (C#)

android.support.v7.graphics.Palette 宽度和高度必须 > 0

java - 如何从 Android 设备的应用程序打开或关闭互联网连接?