ios – 在后台线程com.google.Maps.LabelingBehavior上调用UI API

ios – 在后台线程com.google.Maps.LabelingBehavior上调用UI API,第1张

概述升级到XCode 9后,我在运行应用程序时突然收到以下警告: Main Thread Checker: UI API called on a background thread: -[UIApplication applicationState]PID: 15473, TID: 773864, Thread name: com.google.Maps.LabelingBehavior, Queu 升级到XCode 9后,我在运行应用程序时突然收到以下警告:
Main Thread Checker: UI API called on a background thread: -[UIApplication applicationState]PID: 15473,TID: 773864,Thread name: com.Google.Maps.LabelingBehavior,Queue name: com.apple.root.default-qos.overcommit,QoS: 21Backtrace:4   App                          0x000000010b8ee524 GMSIsApplicationInBackground + 535   App                          0x000000010b8dc77a -[GMSForegrounddispatchQueue initWithname:targetQueue:] + 2696   App                          0x000000010b9bc5ee _ZN7gmscore6vector4text8GlyphSetC2ERKNS_4base10reffed_ptrINS0_16TextureAtlasPoolEEEPU28objcproto17OS_dispatch_queue8NSObjectPK8__CTFontff + 3447   App                          0x000000010b9bba58 _ZN7gmscore6vector4text10GlyphCache11GetGlyphSetEPK8__CTFontf + 2148   App                          0x000000010b9b950e _ZN7gmscore6vector4text6GLText14PrefetchGlyphsERKNS_4base10reffed_ptrINS1_10GlyphCacheEEERKNSt3__16vectorItNS9_9allocatorItEEEEPK8__CTFontf + 229   App                          0x000000010b9b9611 _ZN7gmscore6vector4text6GLText14PrefetchGlyphsERKNS_4base10reffed_ptrINS1_10GlyphCacheEEEPK8__CTlinebf + 20710  App                          0x000000010b9112df _ZN7gmscore6vector12GLPointLabel22PrefetchGlyphsForGroupEPNS0_12GLLabelGroupE + 18111  App                          0x000000010b911207 _ZN7gmscore6vector12GLPointLabel14PrefetchGlyphsEv + 3312  App                          0x000000010b98022a _ZN7gmscore6vector16LabelingBehavior23CreatePendingOperationsERKNSt3__13setINS_4base10reffed_ptrINS0_7GLLabelEEENS2_4lessIS7_EENS2_9allocatorIS7_EEEESE_SE_NS0_13LabelDrawModeE + 109613  App                          0x000000010b97fb9d _ZN7gmscore6vector16LabelingBehavior14RunLabelingJobERKNS_4base10reffed_ptrINS1_11LabelingJobEEE + 35714  App                          0x000000010b97fa2a ___ZN7gmscore6vector16LabelingBehavior14CommitInternalEPNS_8renderer14EntityRendererE_block_invoke + 2215  Foundation                          0x0000000110bb0948 __NSThreadPerformPerform + 33416  CoreFoundation                      0x00000001117af2b1 __CFRUNLOOP_IS_CALliNG_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 1717  CoreFoundation                      0x000000011184ed31 __CFRunLoopDoSource0 + 8118  CoreFoundation                      0x0000000111793c19 __CFRunLoopDoSources0 + 18519  CoreFoundation                      0x00000001117931ff __CFRunLoopRun + 127920  CoreFoundation                      0x0000000111792a89 CFRunLoopRunspecific + 40921  Foundation                          0x0000000110b6ae5e -[NSRunLoop(NSRunLoop) runMode:beforeDate:] + 27422  App                                 0x000000010b9bace5 -[GMSx_GTMSimpleWorkerThread main] + 33723  Foundation                          0x0000000110b788ac __NSThread__start__ + 119724  libsystem_pthread.dylib             0x000000011323393b _pthread_body + 18025  libsystem_pthread.dylib             0x0000000113233887 _pthread_body + 026  libsystem_pthread.dylib             0x000000011323308d thread_start + 13Error Domain=kCLErrorDomain Code=0 "(null)"

当我将地图分配给我的视图时,我可以将其缩小到问题.

overrIDe func vIEwDIDLoad() {    super.vIEwDIDLoad()    UIApplication.shared.isIDleTimerDisabled = true    GPSManager.instance.startGPS()    setupLayout()    map = GMSMapVIEw.map(withFrame: CGRect.zero,camera: getCamera(location: initialLocation,zoom: 10))    map.mapType = .hybrID    map.delegate = self    map.settings.consumesGesturesInVIEw = false    self.vIEw.addSubvIEw(map) <-- This is where is goes wrong    self.vIEw.sendSubvIEw(toBack: map)    configureMenus()}

这是我可以解决的问题还是在Google地图中?干杯

解决方法 问题出在Google库中.

如果您不想要这种警告,可以在Scheme选项中禁用主线程检查器.

Go Product>方案>管理方案搜索您用于测试的方案,然后按左侧栏中的编辑…按运行,然后转到诊断并取消选中主线程检查器复选框.

如果您不想要这些警告,这只是一个时间解决方案.我不推荐它,因为你可以在后台线程中调用UI时引入错误

如果您有测试,则应禁用“测试”选项中的复选框,如我在Xcode 9,iOS 11,XCUITest failure: Main Thread Checker Flurry Analytics中所述,如果您不希望测试崩溃

总结

以上是内存溢出为你收集整理的ios – 在后台线程com.google.Maps.LabelingBehavior上调用UI API全部内容,希望文章能够帮你解决ios – 在后台线程com.google.Maps.LabelingBehavior上调用UI API所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1103102.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-28
下一篇2022-05-28

发表评论

登录后才能评论

评论列表(0条)

    保存