-[GCKCastDeviceProvider stopDiscovery] 必须在主线程上调用

Posted

技术标签:

【中文标题】-[GCKCastDeviceProvider stopDiscovery] 必须在主线程上调用【英文标题】:-[GCKCastDeviceProvider stopDiscovery] must be called on main thread 【发布时间】:2017-11-30 19:16:47 【问题描述】:

使用 google cast sdk 3 在 react native 中,我们重新加载应用程序的所有内容都会崩溃,错误是 - [GCKCastDeviceProvider stopDiscovery] 必须在主线程上调用

我们把所有的代码都放进去:

   dispatch_async(dispatch_get_main_queue(), ^ 
     // my code block
   );

我们还检查是否真的在主线程上:

 if ([NSThread isMainThread]) 
    NSLog(@"on main thread");

【问题讨论】:

【参考方案1】:

基于这个release note,你的app调用的CastContext中的所有方法都必须从主线程中调用,否则会抛出一个Exception。另外,documentation 声明所有 SDK 方法都必须从主线程调用。

【讨论】:

没错,问题是stopDiscovery是自己调用的,代码中的任何地方都没有调用...

以上是关于-[GCKCastDeviceProvider stopDiscovery] 必须在主线程上调用的主要内容,如果未能解决你的问题,请参考以下文章

象棋相关

象棋相关

s-s-rS 报告 - 从没有 s-s-rS 服务器的 C# 导出

字符串常用操作

s-s-rS 报告需要在 s-s-rS 2008 (VS 2008) 中重用来自 s-s-rS 2005 (VS 2005) 的 rdl 文件

安装后:无法在 wd %s %s (wd=%s) 中运行