The engine caches the paths of pictures and reload them if the OpenGL context is lost.
You can refer the codes in HelloWorld/android/jni/helloworld/main.cpp.
I don’t know why one image disappear. Is it loaded from a file?
I just wanted to test it so I basically copy pasted the code and simply added code. I am going to test the tests package on device to see if there is the same issue.
void MotionStreakTest1::onEnter()
{
MotionStreakTest::onEnter();
CCSize s = CCDirector::sharedDirector()->getWinSize();
// the root object just rotates around
m_root = CCSprite::spriteWithFile(s_pPathR1);
addChild(m_root, 1);
m_root->setPosition( CCPointMake(s.width/2, s.height/2) );
// the target object is offset from root, and the streak is moved to follow it
m_target = CCSprite::spriteWithFile(s_pPathR1);
m_root->addChild(m_target);
m_target->setPosition( CCPointMake(100,0) );
// create the streak object and add it to the scene
m_streak = CCMotionStreak::streakWithFade(2, 3, s_streak, 32, 32, ccc4(0,255,0,255) );
addChild( m_streak );
// schedule an update on each frame so we can syncronize the streak with the target
schedule(schedule_selector(MotionStreakTest1::onUpdate));
CCActionInterval* a1 = CCRotateBy::actionWithDuration(2, 360);
CCAction* action1 = CCRepeatForever::actionWithAction(a1);
CCActionInterval* motion = CCMoveBy::actionWithDuration(2, CCPointMake(100,0) );
m_root->runAction( CCRepeatForever::actionWithAction((CCActionInterval*)(CCSequence::actions(motion, motion->reverse(), NULL)) ) );
m_root->runAction( action1 );
}