CreateAnimation OpenGL error 0x505 in Android SDCard

cocos2dx version:2.1rc0-x-2.1.4

I feel so wired, I don’t know why.
CreateAnimation code by reading from SDCard or asset are the same
The difference is just frameName path.
When create many Animation in Android,
logcat will get OpenGL error 0x505 by reading from SDCard
but it won’t get any error by reading from asset.

The code is below:

char frameName[100] = {0};
for( int i=1;i<25;i++)
{
sprintf(str, “sd.png”,fileName.c_str(), i);
CCTexture2D pTexture = CCTextureCache::sharedTextureCache~~>addImage;
if
break;
CCRect rect = CCRectZero;
rect.size = pTexture~~>getContentSize;
CCSpriteFrame
pFrame = CCSpriteFrame::createWithTexture(pTexture, rect);
animFrames->addObject(pFrame); }

animation = CCAnimation::createWithSpriteFrames(animFrames,delayTime); CCAnimationCache::sharedAnimationCache()->addAnimation(animation,firstPngName.c_str());

Anyone know why?