【发布时间】:2015-11-30 23:00:41
【问题描述】:
无法在 Unity 中调用本机代码
我很机智,那是在说些什么。似乎无论我做什么,我都无法成功地从 Unity 对一个 android 类进行交叉调用。我的 C# 课
AndroidJavaClass soundActivityJavaClass;
AndroidJavaObject soundActivityObject;
string parse = "";
// Use this for initialization
void Start () {
AndroidJNIHelper.debug = true;
AndroidJNI.AttachCurrentThread();
soundActivityJavaClass = new AndroidJavaClass("com.stuff.oro.UnityBridge");
soundActivityObject = soundActivityJavaClass.GetStatic<AndroidJavaObject>("instance");
parse = soundActivityObject.Call<string>("testBridge");
}
// Update is called once per frame
void Update () {
}
void OnGUI()
{
if (GUI.Button(new Rect(300, 0, 100, 50), "Get mode..."))
{
AndroidJavaClass jc = new AndroidJavaClass("com.stuff.oro.UnityBridge");
AndroidJavaObject jo = jc.GetStatic<AndroidJavaObject>("instance");
print(jo.Call<string>("testBridge"));
Debug.Log(jo.Call<string>("testBridge"));
}
}
我目前的安卓类:
public class UnityBridge extends UnityPlayerActivity{
public static UnityBridge instance;
public String testBridge(){
return "this is a test";
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
UnityBridge.instance = this;
}
public UnityBridge getInstance(){
return instance;
}
}
任何帮助将不胜感激,我从无法编译到拥有
11-30 23:27:53.960: I/Unity(25864): AndroidJavaException: java.lang.NoSuchFieldError: no static field with name='instance' signature='Ljava/lang/Object;'在 Lcom/stuff/oro/UnityBridge 类中;
11-30 23:27:53.960: I/Unity(25864): 在 UnityEngine.AndroidJNISafe.CheckException () [0x00000] in :0
【问题讨论】: