我们希望在我们的CoronaSDK应用程序中集成一个第三方Lua模块(比如) foo。
此模块模块的主要代码是foo/init.lua,需要作为require 'foo'。
我们将此模块放入corona/foo中
corona/foo$ ls
init.lua在corona/main.lua中,我们有:
package.path = package.path .. ";"
.. package.path:gsub("?.lua", "?/init.lua")require 'foo'在模拟器中工作。但是,它在设备上不起作用:
Lua Runtime Error: lua_pcall failed with status: 2, error message is:
module 'foo' not found:resource (foo.lua) does not exist in
archive
no field package.preload['foo']
no file '/var/mobile/Applications/0B609A43-54E8-40E5-9D44-F3C93CC4031E/Appname.app/foo.lua'
no file '/var/mobile/Applications/0B609A43-54E8-40E5-9D44-F3C93CC4031E/Appname.app/foo.lua'
no file '/var/mobile/Applications/0B609A43-54E8-40E5-9D44-F3C93CC4031E/Appname.app/foo/init.lua'
no file '/var/mobile/Applications/0B609A43-54E8-40E5-9D44-F3C93CC4031E/Appname.app/foo/init.lua'
no file './foo.so'奇怪的是,require 'foo.init'确实可以工作。
有什么线索吗?
发布于 2013-08-24 10:50:22
是您的文件名
foo.lua还是Foo.lua?
它在两种情况下都适用于模拟器,但在设备中,资本很重要。
我做了一个噩梦(我想知道为什么我的SVN客户改变了我的一个文件的大写...我花了一个多小时来找出哪里出了问题,因为我的模块突然在设备中找不到了)
发布于 2013-01-10 12:01:08
尝尝这个
package.path = package.path ..";“..package.path:gsub("?.lua","?.init.lua")
在包中调用lua文件的路径名应该是这样的:
dir.luafile.lua
而不是dir/luafile.lua
希望这能有所帮助
https://stackoverflow.com/questions/14244027
复制相似问题