quick cocos2dx解决ByteArray中readchar负数不正常的问题
这个问题只在Android真机和模拟器下出现,MAC和player中均无此问题 以下是出问题的代码 local ba = cc.utils.ByteArray.new() ba:writeChar(-1) print("ba:readChar()",ba:readChar()) 此时打印出来的结果在Android真机(模拟器)上为0,而player中(win.mac)下均为-1,ios模拟器上为-1 此时出现2个结果,刚开始的时候以为是arm与x86结构不同而导致,后来证实ios下正常,说明了仅在android下有问题。 经查,在android下char类型默认编译选项是unsigned型,而此函数是通过lpack库导出,因此,需要在 quick/lib/cocos2d-x/scripting/lua/proj.android/Android.mk中原来 LOCAL_CFLAG += -Wno-psabi -DCC_LUA_ENGINE_ENABLED=1 $(ANDROID_COCOS2D_BUILD_FLAG) 后面加上 -fsinged-char LOCAL_CFLAG += -Wno-psabi -DCC_LUA_ENGINE_ENABLED=1 $(ANDROID_COCOS2D_BUILD_FLAG)-fsinged-char 删除当前项目下的obj里的文件, 重新sh build_native.sh 再生成apk文件,就正常了。 解决做法虽然简单,但这个过程却浪费了很长的时间。啧啧。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |