quick cocos2dx解决ByteArray中readchar负数不正常的问题

quick cocos2dx解决ByteArray中readchar负数不正常的问题,第1张

概述这个问题只在Android真机和模拟器下出现,MAC和player中均无此问题 以下是出问题的代码 local ba = cc.utils.ByteArray.new()ba:writeChar(-1)print("ba:readChar()", ba:readChar()) 此时打印出来的结果在Android真机(模拟器)上为0,而player中(win.mac)下均为-1,ios模拟器上为

这个问题只在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文件,就正常了。

解决做法虽然简单,但这个过程却浪费了很长的时间。啧啧。

总结

以上是内存溢出为你收集整理的quick cocos2dx解决ByteArray中readchar负数不正常的问题全部内容,希望文章能够帮你解决quick cocos2dx解决ByteArray中readchar负数不正常的问题所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1027348.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存