2016-06-21 5 views
3

Ich habe ein einfaches Plugin zum Öffnen von Android Activity von Unity3D erstellt. Probleme beim Auslösen der Methode mit Parametern. Irgendwelche Ideen?Unity3D - Call Static Methode von Android

Java-Code

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

und in 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# -Code, um es auszulösen:

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

Und was ist ein Problem: -ohne Parameter arbeitet, mit Parameter habe ich folgenden Fehler:

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" 

Antwort

3

Sie rufen Call, die eine Instanzmethode aufrufen soll. Sie möchten CallStatic, die eine statische Methode aufruft.

+0

Sie haben mein Problem gelöst;) Ich habe gerade angefangen Unity3D zu lernen, danke. Ich akzeptiere die Antwort in 4 Minuten – ramzixp