这个帧动画的文件路径出问题,

如果把帧动画的文件直接放在Resources文件夹下,代码中直接添加文件名不会报错,
如果在Resources文件夹下新建一个protagonist_move文件夹,把帧动画文件放在protagonist_move文件夹中,然后在代码中添加文件路径/protagonist_move/a.plist就会报错,
我确定plist文件和png图像的位置没有错误,为什么仍然显示这个错误? 代码如下:

SpriteFrameCache::getInstance()->addSpriteFramesWithFile("/protagonist_move/a.plist");
	auto pSprite2 = Sprite::create();
	pSprite2->setPosition(500, 600);
	this->addChild(pSprite2,2);
	Vector<SpriteFrame*>list;
	list.reserve(2);
	list.pushBack(SpriteFrameCache::getInstance()->getSpriteFrameByName("/protagonist_move/10020.png"));
    list.pushBack(SpriteFrameCache::getInstance()->getSpriteFrameByName("/protagonist_move/10021.png"));
	auto pAnimation = Animation::createWithSpriteFrames(list, 0.2f, 1000);
	auto pAnimate = Animate::create(pAnimation);
	pSprite2->runAction(pAnimate);

错误如下:
fbab052b392f0226bc1b0b8624d3ee6d859da656

调试一下不就知道?
我估计是你的两行 list.pushBack(nullptr) 其中的一个传入nulltptr,就是你的getSpriteFrameByName找不到精灵帧。

把文件名前面的/去掉试试吧,"protagonist_move/…

已经将文件名前面的/去掉了,但还是一样的错误。

看plist里面的路径,是 protagonist_move/10020.png还是 10020.png。有没有目录名

是protagonist_move/10020.png,plist和png都是同一个路径,
这是demo文件,麻烦帮我检查一下是什么问题。
demo.zip (495.6 KB)

list.pushBack(SpriteFrameCache::getInstance()->getSpriteFrameByName("protagonist_move/10020.png"));
	list.pushBack(SpriteFrameCache::getInstance()->getSpriteFrameByName("protagonist_move/10021.png"));

改成试试,我昨天就说了

list.pushBack(SpriteFrameCache::getInstance()->getSpriteFrameByName("10020.png"));
	list.pushBack(SpriteFrameCache::getInstance()->getSpriteFrameByName("10021.png"));

改成这样是可以正常运行,当这样意味着要把所有文件直接放在Resources文件夹下,当文件多的时候看起来太乱,所有要在Resources文件夹下建立子文件夹来存放相应的文件。但如果使用子文件夹又出现这个问题。

在plist加上前缀就行了。或者自己修改解析plist的类,自己加目录名

这两种办法分别具体应该怎么做?
前缀怎么添加?plist的类在哪里?