[英]Unity call android static function of java class
嗨,我想用c#统一调用这段android java代码,这里是java代码:
SmsDialog.getInstance().init(this);
//this is context of android activity
现在我在我的c#代码中这样做:
void ShowPaymentDialog()
{
AndroidJavaClass smsDialog = new AndroidJavaClass("com.mobagym.testsdkmobagym.SmsDialog");
smsDialog.CallStatic<AndroidJavaObject>("getInstance").Call("init",getContext());
}
AndroidJavaObject getContext()
{
AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
AndroidJavaObject jo = jc.GetStatic<AndroidJavaObject>("currentActivity");
return jo;
}
没有崩溃或任何事情,只是那个游戏停止并且在ShowPaymentDialog之后没有执行行。
void Start ()
{
ShowPaymentDialog();
GoogleAnalyticsV4.getInstance().LogScreen(MyMenuManager.SPLASH_SCREEN);
StartCoroutine(Next());
}
IEnumerator Next()
{
yield return new WaitForSeconds(duration);
SceneManager.LoadScene(MyMenuManager.MAIN_MENU);
}
所以我想知道我是否对c#语法做错了。 如果有任何方法可以记录这个。
您应该尝试在提及时记录错误。 尝试设置try catch块。
Try {
//do some logic
} catch (Exception e){
//Log exception
}
请检查以下链接: https : //docs.unity3d.com/ScriptReference/Debug.LogException.html
也许当你有严重错误的堆栈跟踪时,我们可以提供更多帮助。
您可能有一个本机java异常并且缺少它。 您应该将设备连接到它并使用adb logcat
监视设备日志,以查找您的方法调用。 这应该为您提供足够的信息来继续调试。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.