在做cocos2d-x的游戲項目中添加了lua的json解析模塊 遇到了以下情況 module 'cjson' not found: no field package.preload['cjson']cjson


詳細表述:

   本人在做cocos2d-x的游戲項目,需要用到lua自己的json解析模塊,將解析模塊按照方式拉到項目里,頭文件添加上,在需要用的

地方添加如下代碼 將模塊運用到lua引擎上

    lua_State * state = pEngine->getLuaStack()->getLuaState();

    luaopen_lua_extensions(state);

執行出現了如下錯誤信息

錯誤信息如下:

Cocos2d: Get data from file(cjson.lua) failed!

Cocos2d: can not get file data of cjson.lua

Cocos2d: [LUA ERROR] ...9707-79E6122956B2/KaPaiSeed.app/network_and_json.lua:7: module 'cjson' not found:

no field package.preload['cjson']cjson

no file './cjson.lua'

no file '/usr/local/share/lua/5.1/cjson.lua'

no file '/usr/local/share/lua/5.1/cjson/init.lua'

no file '/usr/local/lib/lua/5.1/cjson.lua'

no file '/usr/local/lib/lua/5.1/cjson/init.lua'

no file './cjson.so'

no file '/usr/local/lib/lua/5.1/cjson.so'

no file '/usr/local/lib/lua/5.1/loadall.so'

 

原因分析:

lua的模塊必須在使用之前加載,項目代碼較為混亂,添加時將模塊加載放在了后面造成的

 

解決方案:

在lua引擎使用,需要用到它的代碼之前進行模塊加載。最好在AppDelegate里面加載此類模塊,頭文件引用

#include "lua_extensions.h"

bool AppDelegate::applicationDidFinishLaunching()

方法里

    // register lua engine

    CCLuaEngine* pEngine = CCLuaEngine::defaultEngine();

    lua_State * state = pEngine->getLuaStack()->getLuaState();

    luaopen_lua_extensions(state);

至此完成。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM