开发腾讯移动游戏平台SDK ios版Ane扩展 总结

开发腾讯移动游戏平台SDK ios版Ane扩展 总结

本文记录了在开发 腾讯移动游戏平台SDK(MSDK) ios版Ane扩展 过程中所遇到的问题

文中非常多问题都是基础的问题、对object c和xcode配置了解不深入导致的。(没办法,开发ane的程序猿大部分都是做ActionScript的,一般对c/c++都没有开发经验)

问题一、编译报错:Unexpected ‘@’ in program

代码例如以下:
@try{
}
@catch{
}
原因是高版本号xcode代码放在低版本号xcode下跑,低版本号ios 不支持这样的写法(ios 7.0编译正常),须要改动设置ios Deployment Target属性
假设要支持安装在低版本号的ios上,则不能用这样的写法—-待确认??

 

问题二、c++代码和object-c混合编译,会报错:Cannot use ‘@try’ with Objective-C exceptionsdisabled

解决的方法:改动target -> build settings -> All | Combined -> Apple LLVMCompiler 5.0 – Language – Objective C 中 EnableObjective-C Exceptions 为YES

 

问题三、编译报错 instance method ‘-AddList:’ not found (returntype defaults to ‘id’)

原因1:没有import .h文件,仅仅通过 @class file 方式引用了文件,解决方法是 把文件import进来
http://blog.csdn.net/liuyuyefz/article/details/8189210

原因2:实例方法和静态方法搞错了

 

问题四、项目移植到还有一个版本号ide后编译报错

Unsupported compiler ‘com.apple.compilers.llvmgcc42’ selected forarchitecture ‘armv7’
Unableto determine concrete GCC compiler for file/Users/flash8/Desktop/app/TencentMSDKAneIOS/TencentMSDKAneIOS/TencentMSDKAneIOS.mof type sourcecode.c.objc.
原因是xcode版本号不同,编译器不一样了,解决方法:
设置 Build Settings-> Build Options -> Compiler for C/C++/Objective-C 选择DefaultComplier (Apple LLVM 5.1)

 

问题五、打包时报错:ld: framework not found AdSupport

原因是platformoptions.xml中未加入�在上加入�AdSupportframework,注意(低于IOS 6.0系统须要在xcode中设置为Optional)
<option>-frameworkAdSupport</option>

 

问题六、打包时报错:-[GDataXMLElement attributeForName]……一大段

原因是platformoptions.xml中未加入�在上加入�libxml2
<option>-lxml2</option>

 

问题七、打包时报错:

Undefined symbols for architecture armv7:  
 “_TencentMSDKAneIOSExtInitializer”,referenced from:
     _g_com_adobe_air_fre_fmap in extensionglue.o
     (maybe you meant:_TencentMSDKAneIOSExtInitializer_name)
 “_TencentMSDKAneIOSExtInitializer”,referenced from:
     _g_com_adobe_air_fre_fmap in extensionglue.o
     (maybe you meant:_TencentMSDKAneIOSExtFinalizer_name)
 ld:symbol(s) not found for architecture armv7
Compilationfailed while executing : ld64
找了好久,一直怀疑是类库漏了或配置错误,后来发现原因是 c++把函数名翻译了(这个项目包括c++代码)
解决的方法是在头文件里用extern c把那两入口函数包住
#if__cplusplus
extern”C” {
#endif
void *TencentMSDKAneIOSExtInitializer();
void *TencentMSDKAneIOSExtInitializer();
#if__cplusplus
}  // Extern C
#endif
參考链接:http://stackoverflow.com/questions/7376003/linker-error-using-extern-c-in-objective-c-code

问题八、#import<vector> 编译时提示错误“vector.h file not found”

原因是项目中引入了C++ STL里的vector.h文件,编译器的配置不正确,改动例如以下配置就可以:
1. 选择project -> build setting -> apple LLVM compiler 3.0 – language配置项,
2. 将Compile Sources As设置项改动为Objective-C++。

【原文链接:http://blog.csdn.net/linguifa/article/details/25741807/  转载请注明出处】

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/119041.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 海康威视 – 萤石云开放平台 js 版

    海康威视 – 萤石云开放平台 js 版

    2021年5月25日
    375
  • C# SplitContainer 控件详细用法

    C# SplitContainer 控件详细用法1.可以将Windows窗体SplitContainer控件看作是一个复合体,它是由一个可移动的拆分条分隔的两个面板。当鼠标指针悬停在该拆分条上时,指针将相应地改变形状以显示该拆分条是可移动的。使用SplitContainer控件,可以创建复合的用户界面(通常,在一个面板中的选择决定了在另一个面板中显示哪些对象)。这种排列对于显示和浏览信息非常有用。拥有两个面板使您可以聚合不同区域中的信息,并且用户可以轻松地使用拆分条(也称为“拆分器”)调整面板的大小。另外,还可以嵌套多个SplitC…

    2022年7月18日
    72
  • springboot 事务配置

    springboot 事务配置1、全局配置@EnableTransactionManagement@Aspect@ConfigurationpublicclassGlobalTransactionConfig{//写事务的超时时间为10秒privatestaticfinalintTX_METHOD_TIMEOUT=10;//restful包下所有service包或者service的子包的任意类的任意方法privatestaticfinalStringAOP

    2022年5月17日
    55
  • php实现工厂模式

    php实现工厂模式

    2021年11月15日
    57
  • RabbitMQ消息监听异常问题探究「建议收藏」

    RabbitMQ消息监听异常问题探究「建议收藏」问题场景在使用SpringRabbitMQ做消息监听时,如果监听程序处理异常了,且未对异常进行捕获,会一直重复接收消息,然后一直抛异常。为了更好的描述问题,下面写个简单的例子。通过访问null对象来引发空指针异常,消息监听处理程序代码清单:packageamqp;importorg.springframework.amqp.core.Message;importorg.springfram

    2022年8月16日
    7
  • python3获取Elasticsearch数据库数据

    python3获取Elasticsearch数据库数据python3获取Elasticsearch数据库数据采用scoll滚动搜索,scoll搜索会在第一次搜索的时候保存一个当时的视图快照,之后只会基于该旧的视图快照提供数据搜索,这个期间数据变更,用户是看不到的,每次发送scoll请求,需要指定一个scoll参数,指定一个时间窗口,每次搜索请求只要在这个时间窗口内完成就可以了。1.python利用scroll_id游标遍历查询es,获取错误日志路…

    2022年5月10日
    69

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号