cocos2d-x与tinyXml的问题

我的项目是在xcode下开发的,加入了tinyXml,在xcode的ios模拟器上运行成功,但是我把项目迁移到android上去的时候,程序在加载游戏 场景的时候 crash了.通用cclog我把错误定位到了 TiXmlElement *rootElement = leveConfig->RootElement();

只要执行这句tinyXml的代码 ,程序 就会crash 了。请问大字是不是android 的ndk不支持tinyXml,还是我加载的不对。

肯定是支持的,可能是你什么编译开关没弄对吧。
得具体跟一下,比如这句话leveConfig == NULL, 所以就挂掉了,那么往前查为什么leveConfig是空你的?

ios上正确android上挂掉的可能原因之一就是,你的xml文件放置的目录没有正确地让程序知道。

解析的时候出错 很可能是资源问题

tinyxml意志android需要修改源码

在loadlife里面自己把原来读取数据改下,因为读取apk里面xml先要从apk解压出来
char* strdata =(char *)cocos2d::CCFileUtils::getFileData(value.c_str(),“r”, (long unsigned int *)pSize);
这个事原来小明给我说的

bool TiXmlDocument::LoadFile()
{
#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)
int i=0;

long length=0;
long *pSize=&length;

char* strdata =(char *)cocos2d::CCFileUtils::getFileData(value.c_str(),"r", (long unsigned int *)pSize);
char buf;
TIXML_STRING data;
data.reserve( length );
i=0;
for(;i<length;i++){
	buf*=strdata*;
}

const char* lastPos = buf;
const char* p = buf;

buf = 0;
while( *p ) {
	assert( p < (buf+length) );
	if ( *p == 0xa ) {		
		data.append( lastPos, (p-lastPos+1) );	
		++p;									
		lastPos = p;							
		assert( p <= (buf+length) );
	}
	else if ( *p == 0xd ) {
		
		if ( (p-lastPos) > 0 ) {
			data.append( lastPos, p-lastPos );	
		}
		data += (char)0xa;					

		if ( *(p+1) == 0xa ) {
			
			p += 2;
			lastPos = p;
			assert( p <= (buf+length) );
		}
		else {
			
			++p;
			lastPos = p;
			assert( p <= (buf+length) );
		}
	}
	else {
		++p;
	}
}

if ( p-lastPos ) {
	data.append( lastPos, p-lastPos );
}	
Parse( data.c_str(), 0, TIXML_DEFAULT_ENCODING );
delete ]strdata;
if (  Error() )
    return false;
else
	return true;
#else 
return LoadFile(Value());
#endif

}
**