cocos2d-x版本: cocos2d-2.1rc0-x-2.1.2android
一般咱們在文件AppDelegate.cpp的applicationDidFinishLaunching()函數中設置lua代碼路徑方式以下:ios
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上面就不行了,一直提示錯誤:app
解決辦法:函數
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