繁体   English   中英

Unity调用java类的android静态函数

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM