cocos2dx-lua專案,在c++部分為ios接入百度地圖sdk,啟動程式時會在
-(void)initGPS
{
_mapManager = [[BMKMapManager alloc]init];
self.openGPSState = 0;
}
這段代碼崩潰,如果把AppDelegate.cpp中
// register lua module
auto engine = LuaEngine::getInstance();
ScriptEngineManager::getInstance()->setScriptEngine(engine);
lua_State* L = engine->getLuaStack()->getLuaState();
lua_module_register(L);
register_all_LuaDataBridge(L);
LuaStack* stack = engine->getLuaStack();
stack->setXXTEAKeyAndSign("2dxLua", strlen("2dxLua"), "XXTEA", strlen("XXTEA"));
這一串代碼注釋掉則不會崩潰,程式正常啟動,但是崩潰時程式其實也沒有運行到這串代碼,有誰知道時什么問題么,請不吝賜教
uj5u.com熱心網友回復:
繼續追蹤問題后,發現是lua_module_register(L);這個函式中的register_network_module(L);函式,其中注冊webcoskcet的部分#if (CC_TARGET_PLATFORM == CC_PLATFORM_IOS || CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID || CC_TARGET_PLATFORM == CC_PLATFORM_WIN32 || CC_TARGET_PLATFORM == CC_PLATFORM_MAC)
tolua_web_socket_open(L);
register_web_socket_manual(L);
#endif
但是追蹤到這一步就追蹤不下去了,這兩個函式只要進去,哪怕把函式中的操作都注釋掉也會崩潰
uj5u.com熱心網友回復:
把出錯堆疊和型別發一下。你這樣子很難看出問題。uj5u.com熱心網友回復:
您好,這是崩潰時的截圖



uj5u.com熱心網友回復:
錯誤的提示是“Thread 1: EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0)”uj5u.com熱心網友回復:
不好判斷。這個報錯的原因很多。你是用真機還是模擬器除錯?
1建議用真機除錯。
2建議報錯的代碼多分幾段,不要一行代碼寫太多。
3加多點指標為空的判斷。
其它的也幫不上你了,這是framework的報錯。
uj5u.com熱心網友回復:
謝謝,因為一直找不到原因,就改用高德試了下,結果沒出現這個問題,干脆就換sdk了。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/49034.html
標籤:Cocos2d-x
