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

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

更多相关文章

  1. Android-开发搭建
  2. 对Android系统权限的认识
  3. Android中的字符串
  4. Android模拟器无法上网的解决方法
  5. Android(安卓)代码混淆(二)
  6. 网络请求框架AsyncHttpclient的简单使用
  7. Android跟风瞎混 - 1
  8. Android编译系统中的Kconfig,Makefile,.config编译系统浅析
  9. Qt on Android: Qt 5.3.0 发布,针对 Android(安卓)改进说明

随机推荐

  1. 写了一个不太成功的“流氓”app~
  2. Android登录状态记录
  3. android不同线程间通讯~
  4. Android(安卓)TextView 判断文字内容是否
  5. android实现MP3音频录制(lame,支持暂停)
  6. Android(安卓)Studio初窥之提交项目到SVN
  7. Android开发者选项之GPU过度绘制
  8. 一个AMS、PMS、WMS竞争锁引起死锁无法开
  9. android 验证码输入框
  10. Google TV 2.0:开发者终于获得正式版 SDK