我们希望将第三方Lua模块(比如说)foo
集成到我们的CoronaSDK应用程序中。
此模块模块的主要代码位于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'
确实有效。
任何线索?
答案 0 :(得分:1)
你的文件名是
foo.lua或Foo.lua?
它适用于两种情况的模拟器,但在设备中,资本很重要。
我有这个噩梦(我想知道为什么我的SVN客户端改变了我的一个文件的资金......我花了一个多小时才发现出了什么问题,因为我的模块突然无法在设备中找到)< / p>
答案 1 :(得分:-1)
试试这个
package.path = package.path ..“;” .. package.path:gsub(“?。lua”,“?。init.lua”)
包中调用的lua文件的路径名应该像这样:
dir.luafile.lua
而不是dir / luafile.lua
希望有所帮助