ios报ASSERT FAILED ON LUA EXECUTE: key not found : <integer/real>的问题
来源:互联网 发布:品茗网络计划教程 编辑:程序博客网 时间:2024/06/07 11:10
原文 :http://www.cocoachina.com/bbs/read.php?tid=282012
问题出现的原因:
DictMaker有以下3个函数,用来处理tinyxml2的visit回调
void startElement(void *ctx, const char *name, const char **atts)
void endElement(void *ctx, const char *name)
void textHandler(void *ctx, const char *ch, int len)
当解析带有utf8 bom头的文件时,会首先调用textHandler这个函数,参数ch就是utf8的bom头:EF,BB,BF,参数len是3,
由于_state没有初始化,所以可能是任一个乱值。而如果恰好_state==SAX_STRING,就会报CCASSERT(!_curKey.empty(), "key not found : <integer/real>")这个错误。
在以往的win平台开发经验中,debug模式下,未初始化的变量为置0,release下未初始化的变量是乱值。但是在我测试的时候,android评上上,debug模式下,未初始化的变量是一个很大的乱值,但release模式下,出现过比较规则的4,5,9,11等等。。。
所以只要在解析带有utf8 bom头的文件时,并且恰好又_state==5,也就是_state==SAX_STRING时,就会报这个错误,并且是偶然发的。
如果解析的文件是没有bom头的话,就不会先执行textHandler,所以就没问题。
解决方案有2种
1.用工具去掉所有plist文件的bom头
2.CCFileUtils.cpp里面的DictMaker类,有一个变量 _state,这个变量没有初始化,在构造函数里将其初始化成SAX_NONE。
- ios报ASSERT FAILED ON LUA EXECUTE: key not found : <integer/real>的问题
- NS3报错assert failed. cond="uid != 0", msg="Assert in TypeId::LookupByName: xxx not found", file=../sr
- maven3打包报错Failed to execute goal on project testaa: Could not resolve dependencies for project
- Eclipse C++的配置问题launch failed binary not found
- samba 下载问题 samba not found on UART的解决方法
- JUnit报错method initializationerror not found的相关问题
- Eclipse运行C++报Launch failed.Binary not found解决办法
- ioS开发-ld:报错 library not found for -l**** clang: error: linker command failed with exit code 1
- eclipse 启动 tomcat 报was not found on the java.library.path 错误的解决办法
- Failed to execute /linuxrc;Kernel panic - not syncing: No init found
- Xhprof failed to execute cmd: " dot -Tpng". stderr: `sh: 1: dot: not found ' 解决办法
- 打包JAR错误 Class files on classpath not found or not accessible for 问题的解决
- 【IOS开发遇到的问题1】SBPartialInfo.plist not found
- 百度地图ios 启动报manager start failed的问题
- 切换视时基于FormView的对话框属性设置与ASSERT报错的问题 (Debug Assertion Failed!)
- 切换视时基于FormView的对话框属性设置与ASSERT报错的问题 (Debug Assertion Failed!)
- Ueditor一加载就报Uncaught TypeMismatchError: Failed to execute 'removeAttributeNode' on 'Element'
- UE报错:Uncaught TypeMismatchError: Failed to execute 'removeAttributeNode' on 'Element'解决方案
- Windows 10 1703官方原版镜像(Build 15063.0)
- CodeForces 682 E.Alyona and Triangles(计算几何)
- 查找单链表倒数第K个节点和以及逆置单链表
- 使用Jmeter压力测试
- 看过来:种子轮…A轮?Pre-A?IPO?融资轮次,傻傻分不清楚
- ios报ASSERT FAILED ON LUA EXECUTE: key not found : <integer/real>的问题
- 洛谷 P1027 Car的旅行路线
- git使用笔记3(在github上创建远程仓库)
- 广播
- 使用类的属性保存数据库连接参数
- javaScript--开始、停止
- tengine2.2.0编译安装、开机启动、反向代理配置及健康检查
- Maven CheckStyle Plugin集成
- POJ