【发布时间】:2019-06-07 01:13:40
【问题描述】:
我正在使用 Nativescript 教程创建轮播 here。
我遇到的问题是我收到以下错误(减去我的混淆)
Error: Failed to load component from module: undefined.xml or file: /data/data/{Obfuscated}/files/app/pages/welcome/slides/slide1.xml
当它试图在这一行加载 xml 文件时(下面是完整的 sn-p):
slides.push(builder.load(slidePath))
经过一番检查,我发现是文件系统看不到我正在加载的文件。我的代码与教程代码相同。我已经逐行浏览了它(甚至做了一个差异),代码实际上是一样的。
这里可以更好地查看它阻塞的文件路径,您可以将其与我在下面提供的图像进行比较: /data/data/{Obfuscated}/files/app/pages/welcome/slides/slide1.xml
我可以验证文件夹结构与教程app/pages/welcome/slides.slide1.xml 中的相同,但是当页面加载时,我收到了该错误并且它永远不会加载 xml。
这是完整的 sn-p:
private loadSlides(slideFiles, slidesPath) {
return new Promise(function (resolve, reject) {
const slides = []
const currentAppFolder = fs.knownFolders.currentApp();
const path = fs.path.normalize(currentAppFolder.path + "/" + slidesPath);
slideFiles.forEach((dataFile, i) => {
const slidePath = path + "/" + dataFile;
console.log(slidePath);
// Here's where it crashes
slides.push(builder.load(slidePath))
});
resolve(slides);
});
}
当我通过调试和使用文件系统模块来测试路径是否存在时......它总是返回错误,即使文件夹结构确实存在于教程中的方式。
console.log 行显示如下:
/data/data/{myobfuscation}/files/app/pages/welcome/slides
如您所见,它与下面的文件夹路径匹配。
我如何让文件系统看到该文件夹结构?当我使用它来验证存在的图像文件时它工作得很好。
【问题讨论】:
-
您是否使用
--bundle标志运行,请尝试不使用--bundle,看看是否有帮助。 -
我刚刚测试了您的建议,但无论是否带有标志,它都会导致相同的错误。不过想法不错。
-
@iamjc015 / razorsyntax 你能分享一个可以重现问题的示例 repo 吗?
-
我希望我可以(我工作的安全原因)。也就是说,我直接复制了代码,包括模块、组件、文件路径等,甚至匹配 package.json 与演示的版本相同。但我不认为它与演示本身有关,因为我认为它与文件系统看不到文件路径有关。
-
它与文件系统无关,唯一可能的原因是您没有查看正确的路径/构建不包含该文件,对于任何一种情况,我都可能需要一个示例项目。
标签: nativescript angular2-nativescript