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 ?

System.Exception'在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上跟踪这个问题