2013-05-15 2 views
2

Я сделал и составлена ​​Android библиотека, содержащей простой класс и простую статическую функцию:Вызов статической функции баночки из Unity3D

package moo; 

public class MyTestClass { 

    public static String Foo(){ 
     return "Foo from Moo"; 
    } 

} 

Я поместил .jar в своих активах/Plugins/Android папке. Тогда В Unity:

void OnGUI() { 
     string somestring = "foooooooooooOOooo"; 

     AndroidJavaClass testClass = new AndroidJavaClass("moo.MyTestClass"); 
     somestring = testClass.CallStatic<string>("Foo"); 

     GUI.Label (new Rect (20, 20, 100, 20), somestring); 
    } 

И я получаю ошибку: JNI: Не удается найти идентификатор метода для 'Foo' (статический) UnityEngine.AndroidJavaObject: CallStatic (String, Object [])

Am Мне не хватает чего-то, чтобы вызвать мой статический метод? Спасибо!

ответ

2

есть 2 проблемы, насколько я могу видеть:

  1. вы должны положить пакет банки для Assets/Plugins/Android/бункера;
  2. вы всегда получите эту ошибку в своем редакторе windows/mac, вы должны запустить ее на своем устройстве Android;
+0

Для того чтобы быть четким, даже если выбрана «Android Build», она не будет работать в редакторе? Так что мне нужно построить для Android и работать на сим/устройстве? –

+1

Нет, он не будет работать, даже если вы выберете сборку Android, вам нужно запустить на устройстве, чтобы вызвать любую функцию jar. –

Смежные вопросы