运行动画报错

很简单的一个加载plist文件然后加载动画的代码,可以编译,但是无法运行
Vector<SpriteFrame*> pArray(8);
auto pcache = SpriteFrameCache::getInstance();
pcache->addSpriteFramesWithFile(“p1_walk.plist”);
char name = {0};
for (int i = 0; i<8; i++) //将plist中的图片都加载,放到array中
{
sprintf(name, “P1walk%d.png”, i);
auto pframe = pcache->getSpriteFrameByName(name);
pArray.pushBack(pframe);
}

auto Animation = Animation::createWithSpriteFrames(pArray, 0.2f);
//用array中的spriteframe创建一个animation,每帧间隔0.2s
auto animate = Animate::create(Animation);
auto psprite = Sprite::createWithSpriteFrameName("P1walk1.png");
psprite->setPosition(Point(visibleSize.width / 2, visibleSize.height / 2));  //设置精灵的坐标
addChild(psprite);
psprite->runAction(animate);

报错信息如下图

求大神指点一下,不胜感激/。

cocos的版本是3.6,应该和版本没有关系吧,就是不知道具体错在哪里了。

出现这种情况首先检查一下resource下的plist和png文件是否完整,并且里面的帧动画的名字是否和程序中写的字符串对上。
再者,出现报错的话可以点击“重试”,看看是哪里中断了,再看堆栈帧中的进程。
看你的报错信息是object != nullptr,源码上是:
void pushBack(T object)
{
CCASSERT(object != nullptr, “The object should not be nullptr”);
_data.push_back( object );
object->retain();
}
所以应该是pushBack的pframe出错。