2017-04-13 84 views
1

我正在使用react-native-piechart来呈现单个图表。我已将ART.xcodeproj添加到我的图书馆。我还将libART.a添加到我的Build Phases > Link Binary With LibrariesReact Native - NSInvalidArgumentException

当我渲染图表时,我的应用程序崩溃。当运行react-native log-ios我得到以下堆栈跟踪

Apr 13 16:37:30 Dan-MBP mycpd[52875] <Error>: -[__NSArrayI length]: unrecognized selector sent to instance 0x6080000e8b80 
Apr 13 16:37:30 Dan-MBP mycpd[52875] <Error>: *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSArrayI length]: unrecognized selector sent to instance 0x6080000e8b80' 
    *** First throw call stack: 
    (
     0 CoreFoundation      0x0000000105159d4b __exceptionPreprocess + 171 
     1 libobjc.A.dylib      0x0000000103fdd21e objc_exception_throw + 48 
     2 CoreFoundation      0x00000001051c9f04 -[NSObject(NSObject) doesNotRecognizeSelector:] + 132 
     3 CoreFoundation      0x00000001050df005 ___forwarding___ + 1013 
     4 CoreFoundation      0x00000001050deb88 _CF_forwarding_prep_0 + 120 
     5 mycpd        0x0000000100cd0f77 -[RNSVGPathParser initWithPathString:] + 295 
     6 mycpd        0x0000000100cce0a0 +[RCTConvert(RNSVG) CGPath:] + 80 
     7 mycpd        0x0000000100c1ac0a __49-[RCTComponentData propBlockForKey:inDictionary:]_block_invoke.223 + 282 
     8 mycpd        0x0000000100c1b840 __49-[RCTComponentData propBlockForKey:inDictionary:]_block_invoke.259 + 720 
     9 mycpd        0x0000000100c1bbb8 __49-[RCTComponentData propBlockForKey:inDictionary:]_block_invoke_2.272 + 40 
     10 mycpd        0x0000000100bb6dd3 RCTPerformBlockWithLogFunction + 483 
     11 mycpd        0x0000000100bb6f8f RCTPerformBlockWithLogPrefix + 239 
     12 mycpd        0x0000000100c1bb1d __49-[RCTComponentData propBlockForKey:inDictionary:]_block_invoke.267 + 445 
     13 mycpd        0x0000000100c1c015 __37-[RCTComponentData setProps:forView:]_block_invoke + 181 
     14 CoreFoundation      0x00000001050ea2a5 __65-[__NSDictionaryI enumerateKeysAndObjectsWithOptions:usingBlock:]_block_invoke + 85 
     15 CoreFoundation      0x00000001050ea1ba -[__NSDictionaryI enumerateKeysAndObjectsWithOptions:usingBlock:] + 250 
     16 mycpd        0x0000000100c1be7f -[RCTComponentData setProps:forView:] + 223 
     17 mycpd        0x0000000100c01f02 __50-[RCTUIManager createView:viewName:rootTag:props:]_block_invoke + 162 
     18 libdispatch.dylib     0x0000000107804808 _dispatch_call_block_and_release + 12 
     19 libdispatch.dylib     0x000000010782612e _dispatch_client_callout + 8 
     20 libdispatch.dylib     0x000000010780d4fb _dispatch_main_queue_callback_4CF + 1054 
     21 CoreFoundation      0x000000010511de49 __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 9 
     22 CoreFoundation      0x00000001050e337d __CFRunLoopRun + 2205 
     23 CoreFoundation      0x00000001050e2884 CFRunLoopRunSpecific + 420 
     24 GraphicsServices     0x0000000109cd2a6f GSEventRunModal + 161 
     25 UIKit        0x0000000102161c68 UIApplicationMain + 159 
     26 mycpd        0x0000000100a08ddf main + 111 
     27 libdyld.dylib      0x000000010786f68d start + 1 
     28 ???         0x0000000000000001 0x0 + 1 
    ) 
Apr 13 16:37:30 Dan-MBP SpringBoard[50607] <Error>: [KeyboardArbiter] HW kbd: Failed to set (null) as keyboard focus 
Apr 13 16:37:30 Dan-MBP com.apple.CoreSimulator.SimDevice.D55EDF21-DD38-4727-9408-2ED7C7D3E93F.launchd_sim[50590] (UIKitApplication:com.thinkdigital.mycpd[0xb38b][52875]) <Notice>: Service exited due to Abort trap: 6 
Apr 13 16:37:30 Dan-MBP backboardd[50608] <Error>: [Common] Unable to get short BSD proc info for 52875: No such process 
Apr 13 16:37:30 Dan-MBP backboardd[50608] <Error>: [Common] Unable to get proc info for 52875: No such process 
Apr 13 16:37:30 Dan-MBP assertiond[50611] <Warning>: notify_suspend_pid() failed with error 7 

我已经试过

  • 经纱取出包,并从Xcode中移除ART.xcodeprojlibART.a,然后重新安装。
  • 我试过了多个图表库 - 这个问题依然存在。
  • 我创建了一个全新的项目来测试库不会引起问题,他们工作得很好。
+0

你应该该报告为图书馆的发展。 'NSArray'类没有'length'方法,但只有[count](https://developer.apple.com/reference/foundation/nsarray/1409982-count?language=objc)方法。这是一个bug或者在本地ObjC的'NSArray'类之上实现的一些奇怪的扩展。 –

+0

我不相信这是图书馆@StanislavPankevich的问题,它已经工作了3-4周,并且在单独的React Native项目中工作。我想也许这是我不小心点击Xcode的东西。 – Dan

+0

我唯一指出的是数组而不是字符串被传递给'RNSVGPathParser'的初始值设定项。它试图计算一个字符串的长度,但是碰到了数组,因此崩溃了。我是Objective-C开发人员,不熟悉ReactNative,所以我不能说为什么图书馆走错了路。 –

回答

2

我在使用react-native-progress时遇到同样的问题。类似的崩溃报告here

要解决我删除引用反应母语-SVG,然后跑:

npm install react-native-svg --save 

react-native link react-native-svg