【发布时间】:2014-06-18 18:24:27
【问题描述】:
我们在应用程序中使用 Flurry(广告和分析)。一段时间以来,该应用程序在此手机上使用后简单崩溃,我们再次启动它。
完整的错误日志:
Flurry: Starting session on Agent Version [Flurry_iOS_123_4.3.2]
2014-04-29 12:48:24.875 <ProjectName> 2.0[62373:1303] -[NSNull length]: unrecognized selector sent to instance 0x5a8068
2014-04-29 12:48:24.879 <ProjectName> 2.0[62373:1303] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[NSNull length]: unrecognized selector sent to instance 0x5a8068'
*** First throw call stack:
(
0 CoreFoundation 0x0045c1e4 __exceptionPreprocess + 180
1 libobjc.A.dylib 0x02e748e5 objc_exception_throw + 44
2 CoreFoundation 0x004f9243 -[NSObject(NSObject) doesNotRecognizeSelector:] + 275
3 CoreFoundation 0x0044c50b ___forwarding___ + 1019
4 CoreFoundation 0x0044c0ee _CF_forwarding_prep_0 + 14
5 <ProjectName> 2.0 0x00128722 +[FlurryProtocolData limitStringLength:] + 35
6 <ProjectName> 2.0 0x001289ae +[FlurryProtocolData appendString:toData:] + 46
7 <ProjectName> 2.0 0x0012d1f2 -[FlurrySession data] + 1398
8 <ProjectName> 2.0 0x0012c3a7 +[FlurrySession addToSavedSessions:] + 148
9 <ProjectName> 2.0 0x00128e65 +[FlurrySession sessionWithApiKey:startTime:] + 472
10 <ProjectName> 2.0 0x00139fc4 __29-[FlurryImpl setupForApiKey:]_block_invoke + 291
11 libdispatch.dylib 0x03a1d7b8 _dispatch_call_block_and_release + 15
12 libdispatch.dylib 0x03a324d0 _dispatch_client_callout + 14
13 libdispatch.dylib 0x03a20047 _dispatch_queue_drain + 452
14 libdispatch.dylib 0x03a1fe42 _dispatch_queue_invoke + 128
15 libdispatch.dylib 0x03a20de2 _dispatch_root_queue_drain + 78
16 libdispatch.dylib 0x03a21127 _dispatch_worker_thread2 + 39
17 libsystem_pthread.dylib 0x03d61dab _pthread_wqthread + 336
18 libsystem_pthread.dylib 0x03d65cce start_wqthread + 30
)
libc++abi.dylib: terminating with uncaught exception of type NSException
(lldb)
(用户名、项目名等隐私相关部分已替换)
我的代码:
- (BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions
{
...
[Flurry startSession:@"<API-CODE>"];
...
return YES;
}
编辑 1:
我检查了带有 API-Key 的变量是否真的设置并删除了它,即使是固定值,我仍然遇到同样的问题。评论 Flurry 行修复了崩溃。
编辑 2:
只有在我已经使用 Flurry 跟踪了一些事件后,才会出现此问题。因此,如果我随后终止应用程序并重新启动它,我会收到此错误消息。如果我卸载该应用程序并稍后重新安装它,错误就消失了。所以它似乎是在 Flurry 的保存状态中的东西。
【问题讨论】:
-
这是由于一些空字符串..你调试代码了吗?调试代码给你确切的理由
-
我对其进行了调试,并且 Api-Code 已确定设置为正确的值。只要我评论
[Flurry startSession:@"<API-CODE>"];行,一切都会再次运行。您还有其他想法吗? -
其实是因为我传了一个整数作为user-id来赶路。但他们只支持字符串。所以请相应地更改您的参数。
标签: objective-c flurry