lua绑定在安卓上的一个bug

  • 本帖最后由 pleasenter 于 2012-7-9 23:55 编辑 *

我写的lua脚本游戏希望能够自动升级lua脚本,所以就必须建一个文件夹然后写入下载的lua文件,在win32下这个没有问题,但是在android下没法向当前路径也就是assets目录写入任何东西,所以只有先gerWriteablePath,然后在这个目录下写入我的脚本文件。然后就是addSearchPath,最后require其中的脚本,这时候就会得到一个错误:can not get file data of %s。
我查了下,这是因为安卓的导入lua文件的方法不一样,它在Cocos2dxLuaLoader.cpp这个文件里定义里一个loader_Android的函数,然后lua的require都是通过这个函数来做的,我不知道这是为什么,但是在这个函数里面它只简单的加载require文件名对应的文件,没有目录信息,这就导致加载非根目录(assets)下的文件时会找不到文件,最后就直接报错。

要测试这个bug很简单,在hellolua的resources目录下新建一个目录,然后把hello2.lua文件移到该目录下,最后addSearchPath该目录然后编译运行,你会发现没法require “hello2”。

— Begin quote from ____

音乐季节 发表于 2012-8-31 14:46 url

cocos2dx上的lua是一个第三方开发者维护的, 所以可能这方面的问题没直接反馈到他那里去一直没解决 …

— End quote

就算是第三方维护的,难道版主就不能通报一声吗?
这样下去,让我们用Lua的情何以堪呢?

我现在的解决办法是require的时候加上绝对路径,麻烦死了
说实话,这样的bug也没人理,不知道cocos2dx的开发人员怎么了,至少给个说法嘛

哥哥们 android的项目工程目录里面的资源不能修改的(assets,res…) 小弟知道是这样 不知道是不是正确的,放在sdcard就行啦:)

— Begin quote from ____

音乐季节 发表于 2012-8-31 14:46 url

cocos2dx上的lua是一个第三方开发者维护的, 所以可能这方面的问题没直接反馈到他那里去一直没解决 …

— End quote

我觉得这样真是让人很失望,其实可以公布个专门用来反映lua bug的邮箱,免得这样除了问题都反映不到,也不知道王老大等版主有没有看到这些反映bug的帖子。