抛出异常:ChakraBridge.winmd 中的 'System.Exception' 无法开始调试
Exception thrown: 'System.Exception' in ChakraBridge.winmd failed to start debugging
我正在尝试使用 ChakraBridge 在我的应用程序中加载 javascript,并且我遵循了以下块中给出的步骤
Using JavaScript Framework in UWP
还有 GitHub
JsBridge
我在我的项目中添加了 ChakraBridge.winmd 作为参考,当调试模式为脚本时它工作得很好。当我将其更改为“仅限托管”时,它为我提供了例外情况,对于发布模式也是如此。
有人可以提出问题所在吗?
这是例子。我正在尝试使用 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();
.
处抛出的异常
An exception of type 'System.Exception' occurred in ChakraBridge.winmd but was not handled in user code
Additional information: failed to start debugging.
在 ChakraBridge, it calls JsStartDebugging 中,如果处于调试模式,则在当前上下文中开始调试。
#if DEBUG
// Debug
if (Native.JsStartDebugging() != JavaScriptErrorCode.NoError)
throw new Exception("failed to start debugging.");
#endif
但是,Native.JsStartDebugging
方法 returns Fatal
在使用移动模拟器并将“调试器类型”设置为“仅限托管”时。所以我们在应用程序中遇到了上述异常。
这个问题似乎只发生在移动模拟器中。在本地机器或设备上测试时,两者都可以工作。根据代码,这个错误应该只发生在调试模式下。如果我们在我们的解决方案中添加 ChakraBridge 项目,该应用程序可以 运行 在模拟器的发布模式下。现在,您可以在本地计算机或真实移动设备上测试您的应用程序,并在 GitHub 上跟踪 this issue。
我正在尝试使用 ChakraBridge 在我的应用程序中加载 javascript,并且我遵循了以下块中给出的步骤
Using JavaScript Framework in UWP
还有 GitHub JsBridge
我在我的项目中添加了 ChakraBridge.winmd 作为参考,当调试模式为脚本时它工作得很好。当我将其更改为“仅限托管”时,它为我提供了例外情况,对于发布模式也是如此。
有人可以提出问题所在吗?
这是例子。我正在尝试使用 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();
.
An exception of type 'System.Exception' occurred in ChakraBridge.winmd but was not handled in user code
Additional information: failed to start debugging.
在 ChakraBridge, it calls JsStartDebugging 中,如果处于调试模式,则在当前上下文中开始调试。
#if DEBUG
// Debug
if (Native.JsStartDebugging() != JavaScriptErrorCode.NoError)
throw new Exception("failed to start debugging.");
#endif
但是,Native.JsStartDebugging
方法 returns Fatal
在使用移动模拟器并将“调试器类型”设置为“仅限托管”时。所以我们在应用程序中遇到了上述异常。
这个问题似乎只发生在移动模拟器中。在本地机器或设备上测试时,两者都可以工作。根据代码,这个错误应该只发生在调试模式下。如果我们在我们的解决方案中添加 ChakraBridge 项目,该应用程序可以 运行 在模拟器的发布模式下。现在,您可以在本地计算机或真实移动设备上测试您的应用程序,并在 GitHub 上跟踪 this issue。