cocos2dx android lua文件设置问题

cocos2d-x版本: cocos2d-2.1rc0-x-2.1.2

通常我们在文件AppDelegate.cpp的applicationDidFinishLaunching()函数中设置lua代码路径方式如下:

1  std::string path = CCFileUtils::sharedFileUtils()->fullPathForFilename(“programe/xxx.lua");
2  pEngine->addSearchPath( path.substr( 0, path.find_last_of( "/" ) ).c_str() );
3  pEngine->executeScriptFile( path.c_str() );

在pc和ios上面能够运行良好,但是android上面就不行了,一直提示错误:

 get data from file(program/xxx.lua) failed 

解决办法:

 1 const char* luaFile = "program/main.lua";
 2 #if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)
 3     CCString* pstrFileContent = CCString::createWithContentsOfFile(luaFile);
 4     if ( pstrFileContent ) {
 5         std::string path = CCFileUtils::sharedFileUtils()->fullPathForFilename(luaFile);
 6         CCLog("path = %s", path.c_str());
 7         std::string subPath = path.substr(0, path.find_last_of("/"));
 8         CCLog("sub path = %s", subPath.c_str());
 9 
10         pEngine->addSearchPath(subPath.c_str());
11 
12         std::vector<std::string> searchPaths = CCFileUtils::sharedFileUtils()->getSearchPaths();
13         searchPaths.insert(searchPaths.begin(), subPath);
14         CCFileUtils::sharedFileUtils()->setSearchPaths(searchPaths);
15 
16         pEngine->executeString(pstrFileContent->getCString());
17     }
18 #else        
19     std::string path = CCFileUtils::sharedFileUtils()->fullPathForFilename(luaFile);
20     pEngine->addSearchPath( path.substr( 0, path.find_last_of( "/" ) ).c_str() );
21     pEngine->executeScriptFile( path.c_str() );
22 #endif

 

posted @ 2014-02-28 11:37  怪人Kook  阅读(736)  评论(0编辑  收藏  举报