System.Exception'在ChakraBridge.日志含义Winmd启动调试失败
本文关键字:Winmd 启动 失败 调试 日志 ChakraBridge Exception System | 更新日期: 2023-09-27 18:02:38
我试图在我的应用程序中使用ChakraBridge加载javascript,我遵循以下块
给出的步骤在UWP中使用JavaScript框架
,也在GitHubJsBridge
我添加了ChakraBridge。winmd作为我项目的参考,当调试模式是脚本时,它工作得很好。当我将其更改为Managed Only时,它会给我异常,对于发布模式也是如此。
谁能建议出什么问题?
下面是示例。我试图使用ChakraBridge API在我的项目中分配DatePicker中的默认日期
if (!string.IsNullOrEmpty(javascriptFunction))
{
try
{
ChakraHost dateHost = new ChakraHost();
string dateValue = dateHost.RunScript(javascriptFunction);
var finalDate = DateTime.ParseExact(dateValue, "dd-MM-yyyy", CultureInfo.InvariantCulture);
datePicker.Date = finalDate.Date;
}
catch(Exception ex)
{
Debug.WriteLine(ex.Message);
}
}
javascript函数是
function executeScript(){var now = new Date(new Date().getTime() - (7*24*60*60*1000)); return ('0'+now.getDate()).substr(-2)+'-'+('0'+(now.getMonth()+1)).substr(-2)+'-'+now.getFullYear();} executeScript();
StackTrace
at ChakraBridge.ChakraHost..ctor()
at MCS.MCSDynamicViewBuilder.<GenerateDynamicControlforMobile>d__10.MoveNext()
此外,当我在笔记本电脑中调试时,它工作得很好,当我在移动设备或移动模拟器中调试时,它给了我这个例外。是不是因为我的笔记本电脑上有一个dist文件夹,我从那里引用了ChakraBridge.winmd
?
是的,我可以在使用移动模拟器和设置"调试器类型"时重现您的问题。到"只管理"。以下是ChakraHost dateHost = new ChakraHost();
抛出的异常。
类型为'System '的异常。在ChakraBridge发生了"异常"。Winmd,但未在用户代码中处理
附加信息:failed to start debugging.
在ChakraBridge中,如果它处于调试模式,它调用JsStartDebugging在当前上下文中开始调试。
#if DEBUG
// Debug
if (Native.JsStartDebugging() != JavaScriptErrorCode.NoError)
throw new Exception("failed to start debugging.");
#endif
然而,Native.JsStartDebugging
方法返回Fatal
时,使用移动模拟器和设置"调试器类型";到"只管理"。所以我们在应用程序中得到了上述异常。
这个问题似乎只发生在移动模拟器。在本地机器或设备上进行测试时,两者都可以工作。根据代码,这个错误应该只在调试模式下发生。如果我们在我们的解决方案中添加ChakraBridge项目,应用程序可以在模拟器中以发布模式运行。现在,你可以在本地机器或真正的移动设备上测试你的应用程序,并在GitHub上跟踪这个问题