抛出异常:' System.Exception'在ChakraBridge.winmd无法启动调试

时间:2016-08-17 04:46:12

标签: c# uwp windows-10-universal chakra

我正在尝试使用ChakraBridge在我的应用中加载javascript,并按照以下块中给出的步骤进行操作

Using JavaScript Framework in UWP

以及GitHub JsBridge

我在项目中添加了ChakraBridge.winmd作为参考,当调试模式为Script时,它完全正常。当我将其更改为Managed Only时,它会给我异常,并且对于Release模式也是如此。

有人可以提出什么问题吗?

这是一个例子。我正在尝试使用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

1 个答案:

答案 0 :(得分:2)

是的,我可以在使用Mobile Emulator并设置&#34; Debugger type&#34;时重现您的问题。到&#34;仅管理&#34;。以下是#if DEBUG // Debug if (Native.JsStartDebugging() != JavaScriptErrorCode.NoError) throw new Exception("failed to start debugging."); #endif 的异常抛出。

  

类型&#39; System.Exception&#39;的例外情况发生在ChakraBridge.winmd但未在用户代码中处理

     

其他信息:无法开始调试。

ChakraBridge中,如果它处于调试模式,它会调用JsStartDebugging在当前上下文中开始调试。

Native.JsStartDebugging

但是,Fatal方法在使用Mobile Emulator并设置&#34; Debugger type&#34;时返回{{1}}。到&#34;仅管理&#34;。所以我们在申请中遇到了上述异常。

此问题似乎只发生在移动模拟器中。在本地计算机或设备上进行测试时,两者都可以工作。根据代码,此错误应仅在调试模式下发生。如果我们在我们的解决方案中添加 ChakraBridge 项目,该应用程序可以在模拟器中的发布模式下运行。目前,您可以在本地计算机或真实的移动设备上测试您的应用,并在GitHub上跟踪this issue