设为首页 加入收藏

TOP

编译Google Admob出现程序崩溃的情况
2014-11-24 01:43:04 来源: 作者: 【 】 浏览:1
Tags:编译 Google Admob 出现 程序 崩溃 情况

Google Admob for iOS SDK中静态库在加载过程中,如果不在Build Settings中添加other link flag 为 -ObjC,就会出现程序一运行就崩溃的情况。添加后,程序运行正常,后来,在网上查找了资料:


以下内容,来自查询到的资料,可以有助于理解出现这种问题的原因,后续再仔细体会。


今天编译项目的时候发现抛出了一个异常,+[NSInvocation invocationWithMethodSignature:]: method signature argumentcannot be nil。但是看到项目里面是有这个类的,最后思考了下,由于是使用的runtime的调用,没有在头文件中import,所以link的时候是找不到这个类的,在网上看了下,只需要在other linker flag中添加-Objc就可以,添加之后发现正确了,不过感觉还是需要了解下这个编译选项的含义,于是在网络上查了下,最后找个一个英文的解释。


-all_load Loads all members of static archive libraries.


-ObjC Loads all members of static archive libraries that implement an Objective-C class or category.


-force_load (path_to_archive) Loads all members of the specified static archive library. Note: -all_load forces all members of all archives to be loaded. This option allows you to target a specific archive.


翻译过来就是-all_load就是会加载静态库文件中的所有成员,-ObjC就是会加载静态库文件中实现一个类或者分类的所有成员,-force_load(包的路径)就是会加载指定路径的静态库文件中的所有成员。所以对于使用runtime时候的反射调用的方法应该使用这三个中的一个进行link,以保证所有的类都可以加载到内存中供程序动态调用。


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Python的ZipFile模块记录 下一篇shell 告警脚本

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: