Coronasdk &引用;没有这样的文件或目录;预压器

Coronasdk &引用;没有这样的文件或目录;预压器,coronasdk,Coronasdk,我正在为一个大型应用程序制作预加载程序。今天出现错误“没有这样的文件或目录”。此错误仅在Android设备上发生。在计算机上(在模拟器中)工作正常。所有文件名和目录都要小写 代码: 这就是我在舞台上展示图像的方式: M.dial = display.newImageRect( M.gr, TEXTURES.interface["btn_compas_comp.png"].filename, TEXTURES.interface["btn_compas_comp.png"].baseDir, 27

我正在为一个大型应用程序制作预加载程序。今天出现错误“没有这样的文件或目录”。此错误仅在Android设备上发生。在计算机上(在模拟器中)工作正常。所有文件名和目录都要小写

代码:

这就是我在舞台上展示图像的方式:

M.dial = display.newImageRect( M.gr, TEXTURES.interface["btn_compas_comp.png"].filename, TEXTURES.interface["btn_compas_comp.png"].baseDir, 272, 272 )
M.dial.x, M.dial.y = X, Y
提前感谢朋友。

1)
所有文件名和目录都要小写
-我建议仔细检查一下,因为Android文件系统区分大小写

2) 还要检查
build.settings
以确保
excludeFiles
部分不包含代码中的任何目录

编辑:另一个基于的想法-加载前尝试以下内容:

local resourcesPath = system.pathForFile( "", system.ResourceDirectory )

-- Change current working directory
local success = lfs.chdir( resourcesPath )  --returns true on success
我猜lfs默认情况下不会指向资源目录。您的所有资产都应该在此目录中,但不要试图修改它们-
出于安全原因,此目录是只读的,由操作系统强制执行,而不是由Corona强制执行。

编辑2:不依赖当前目录的解决方案

Preloader.createPath = function()
  for k, v in pairs(path) do
    local i = 0
    local pathForDirectory = system.pathForFile(v, system.ResourceDirectory)
    Preloader.texture[k] = { id = k }
    for l in lfs.dir(pathForDirectory) do
        if ( l ~= "." and l ~= ".." and l ~= "..." ) then
            i = i + 1
            Preloader.texture[k][i] = v..l
        end
    end
  end
end

反复检查了很多次。猜测:可能lfs模块无法与设备上的应用程序目录一起工作。@Баааааааааааааааааааааа1072
Preloader.createPath = function()
  for k, v in pairs(path) do
    local i = 0
    local pathForDirectory = system.pathForFile(v, system.ResourceDirectory)
    Preloader.texture[k] = { id = k }
    for l in lfs.dir(pathForDirectory) do
        if ( l ~= "." and l ~= ".." and l ~= "..." ) then
            i = i + 1
            Preloader.texture[k][i] = v..l
        end
    end
  end
end