J'ai une méthode dans ma bibliothèque java qui obtient une carte comme une entrée.
ici est ma méthode javacréer java hashmap avec Unity AndroidJavaObject
public void myMethod(Map<String, String> map){
//do some thing with this map
}
Et mon code C# dans l'unité
AndroidJavaObject javaMap= new AndroidJavaObject("java.util.HashMap");
javaMap.Call("put", "key1", "value1");
AndroidJavaClass javaClass = new AndroidJavaClass("com.alirezaahmadi.android.sdk.core.BaseAPI");
javaClass.CallStatic("myMethod", javaMap);
Je peux essayer un peu de code comme ça, mais la carte est une classe générique et ce code ne fonctionne pas
quand je lance ce que je reçois cette erreur
AndroidJavaException: java.lang.NoSuchMethodError: no non-static method with name='put' signature='(Ljava/lang/String;Ljava/lang/String;)V' in class Ljava.lang.Object;
java.lang.NoSuchMethodError: no non-static method with name='put' signature='(Ljava/lang/String;Ljava/lang/String;)V' in class Ljava.lang.Object;
Comment est-ce que je peux réparer ceci et placer une hashmap java dans cette méthode. BTW Je ne peux pas changer le code Java.
Ne pensez-vous il serait utile de poster aussi votre code Java pour que nous puissions voir la méthode 'myMethod'? Peut-être nous dire quelle ligne du C# provoque l'erreur. Avec ce que vous avez maintenant, il n'y a aucun moyen de comprendre votre problème. – Programmer
En plus de la méthode "myMethod", AndroidJavaObject.Call() prend une méthode comme première entrée, ce qui dans votre cas serait "put". Il n'est pas apparent si cette méthode existe ou non à partir de votre explication - ce qui devrait résoudre votre problème si ce n'est pas le cas. – ryeMoss
@ryemoss J'essaie de créer une carte Java. erreur sera augmenter dans la ligne 2 lorsque j'appelle la méthode put de la classe Java Map. Le problème est que la classe Map est générique et qu'elle prend des arguments génériques, pas seulement des chaînes. – Reza