在我的项目中,我导入了一些第三方框架,如google-maps。 EveryThing在编译时工作正常,但是当它运行时,应用程序崩溃,我可以跟踪可疑方法:
//Invoked when the class is instantiated in XIB
-(id)initWithCoder:(NSCoder*)aDecoder
{
self = [super initWithCoder:aDecoder];
if(self)
{
[self customInitialization];
}
return self;
}
这是我得到的崩溃的堆栈:
TestMapDirections[1343:11603] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[NSURL initFileURLWithPath:]: nil string parameter'
*** First throw call stack:
(0x13ea052 0x2035d0a 0x1392a78 0x13929e9 0xae854b 0xae84d5 0x23e3f 0x23d17 0x223b0 0x2230b 0x29e5 0x2ae6 0x3d3335 0x4d1fa2 0x4d16b7 0x3d2ead 0x4d1fa2 0x4d19af 0x4d16b7 0x3d2305 0x5d884f 0x5d8dd7 0x13ebec9 0x1b75c2 0x1b755a 0x25cb76 0x25d03f 0x25c2fe 0x1dca30 0x1dcc56 0x1c3384 0x1b6aa9 0x1601fa9 0x13be1c5 0x1323022 0x132190a 0x1320db4 0x1320ccb 0x1600879 0x160093e 0x1b4a9b 0x2478 0x23d5)
terminate called throwing an exceptionsharedlibrary apply-load-rules all
Current language: auto; currently objective-c
你可以下载my application并尝试一下你的东西,也许你可以帮我更多地解决问题,而不是事先。
修改
@JSON coco:这是customInitialization
方法的代码:
-(void)customInitialization
{
// do the initialization of class variables here..
mDirections = [UICGDirections sharedDirections];
mDirections.delegate = self;
}
答案 0 :(得分:2)
所以,我查看了你的代码。实际上Google Map API正在崩溃。它希望找到一个名为api.html
的文件。我不熟悉你正在使用的这个框架,所以我不能告诉你这个html文件用于什么或从何处获取它。但是,您需要找到它并将其添加到项目文件中,并确保它进入复制资源构建阶段。要做到这一点,只需查看编辑器右侧的 File Utility Inspector (如果没有打开,可以按CMD + ALT + 1打开它)。将api.html
文件添加到项目后,选择它,然后检查以确保在文件检查器中检查了目标。
这将导致崩溃停止。如果实际上不需要该文件,则可以更改文件UICGoogleMapsAPI.m
的第39行。这是崩溃的行,因为它无法归档api.html
文件。