node.getComponent获取到的组件为空,但是 node._components里面是有这个组件的

canvas.getComponent(‘ScriptPlayer’) 获取到的组件为空,但是 canvas._components里面是有这个组件的
截图如下:

大家遇到过类似的问题吗?不是每次都出现,偶尔出现。是在插件的场景脚本里面调用的

另外在断点时,掉用cc.director.getScene().getChildByName(‘Canvas’).getComponent(‘ScriptPlayer’) 获取到的也为空,截图如下:

版本:Creator2.2.0

单步跟进去看看,会不会是有空格?

貌似单步跟不进去,进去后显示的是空白页面,截图如下:

没有空格。另外当停在断点的地方时,在控制台执行cc.js.getClassByName(‘ScriptPlayer’)返回的是undefined,试了其它类名也拿不到。但是断点执行之后,在控制台执行cc.js.getClassByName(‘ScriptPlayer’)返回是正常的。注意我这个是插件的场景脚本,在插件里面发送事件调用的,而且调用之前,导入了要操作的场景文件,然后取到场景的Canvas节点,进行的截图里面的操作。复现几率不大。

另外导入场景后,打开场景时报了这个错误:

但是这个文件是存在的,不知道为什么会报这个错误。我试试能不能让报这个错误时停下来

详解截图如下:

这个报错文件:“library/imports/44/448d0ff9-f5c3-4a46-968e-64d385d76a09.json”是存在的,并且这个文件就是我用插件导入然后刷新导入目录,最后再打开的场景文件

具体报错是:errorCode":“db.NOTFOUND”

是不是和我的creeator安装目录带有空格有关?我安装了多个版本的creator
现在这个2.2.0版本的路径如下:
“/Applications/CocosCreator 2.app/Contents/Resources/engine/bin/.cache/dev/cocos2d/core/CCDirector.js:320:”

可能是脚本编译后的缓存文件有问题。把temp文件夹的缓存文件删了,再试一遍看看。