您好我想将这段安卓java代码与c#统一称为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#语法做错了。如果有任何方法可以记录它。
答案 0 :(得分:0)
您应该尝试按照提及记录错误。 尝试设置try catch块。
Try {
//do some logic
} catch (Exception e){
//Log exception
}
检查此链接: https://docs.unity3d.com/ScriptReference/Debug.LogException.html
也许当你有严重错误的堆栈跟踪时,我们可以提供更多帮助。
答案 1 :(得分:0)
您可能有一个本机java异常并且错过了它。您应该将设备连接到它并使用adb logcat
监视设备日志,以查找您的方法调用。这应该为您提供足够的信息来继续调试。