I've created a project and recog for my app.

in my .pkg file i've :

"\Symbian\MyApp\install\MyStarter.mdl" -"c:\system\recogs\MyStarter.mdl"

and

""-"c:\system\recogs\MyStarter.mdl",FN


I copy .sis to device and start installation. When install is complete
after this device starts showing this error Message "App. Closed AppArcServerTh read"
doesnt matter how many time i press OK button but this message again comes.
when i restart phone i cant get into phone menu sad

When i dont include .mdl in .pkg file then everything goes OK.
What should i do?

here is recog code....

-----------------------------------
.mmp

TARGET MyStarter.MDL
TARGETTYPE MDL
UID 0x10003A19 0x01EF0010
TARGETPATH \system\recogs\

USERINCLUDE ..\inc
SYSTEMINCLUDE . \epoc32\include

SOURCEPATH ..\group
DOCUMENT bld.inf

SOURCEPATH ..\src
SOURCE MyStarter.cpp

LIBRARY euser.lib APMIME.LIB apparc.lib apgrfx.lib
LIBRARY efile.lib efsrv.lib



//.cpp


// Include Files
#include <apmrec.h>
#include <apmstd.h>
#include <EikDll.h>
#include <apacmdln.h>
#include "MyStarter.h"

// Constants
const TUid KUidemAMyStarter={0x01EF0010};
CMyStarter::CMyStarter()
:CApaDataRecognizerType(KUidemAMyStarter, CApaDataRecognizerType::ENormal)
{
iCountDataTypes = 1;
}

TUint CMyStarter::PreferredBufSize()
{
// no buffer recognition yet
return 0;
}

TDataType CMyStarter::SupportedDataTypeL(TInt /*aIndex*/) const
{
return TDataType();
}

void CMyStarter:oRecognizeL(const TDesC& /*aName*/, const TDesC8&
/*aBuffer*/)
{
// this function is never called
}

void CMyStarter::StartThread()
{
TInt res = KErrNone;

//create a new thread for starting our application
RThread * startAppThread;
startAppThread = new RThread();

User::LeaveIfError( res = startAppThread->Create(
_L("My starter"),
CMyStarter::StartAppThreadFunction,
KDefaultStackSize,
KMinHeapSize,
KMinHeapSize,
NULL,
EOwnerThread) );

startAppThread->SetPriority(EPriorityNormal/*EPriorityLess*/);

startAppThread->Resume();

startAppThread->Close();
}


TInt CMyStarter::StartAppThreadFunction(TAny* /*aParam*/)
{

//wait 15 seconds...
RTimer timer; // The asynchronous timer and ...
TRequestStatus timerStatus; // ... its associated request status
timer.CreateLocal(); // Always created for this thread.
// get current time (microseconds since 0AD nominal Gregorian)
TTime time;
time.HomeTime();
// add ten seconds to the time
TTimeIntervalSeconds timeIntervalSeconds(15);
time += timeIntervalSeconds;
// issue and wait
timer.At(timerStatus,time);
User::WaitForRequest(timerStatus);

// create a TRAP cleanup
CTrapCleanup * cleanup = CTrapCleanup::New();
TInt err;
if( cleanup == NULL )
{
err = KErrNoMemory;
}
else
{
TRAP( err, StartAppThreadFunctionL() );
}
delete cleanup;


if (err!=KErrNone)
User::Panic(_L("myApp"), err);
return err;
}

void CMyStarter::StartAppThreadFunctionL()
{

// absolute file path to our application which is gonna run
TFileName fnAppPath = _L("c:\\system\\apps\\MyApp\\MyApp.app");

RFs fsSession; //file server session
User::LeaveIfError(fsSession.Connect());
CleanupClosePushL(fsSession);
TFindFile findFile( fsSession );

User::LeaveIfError( findFile.FindByDir(fnAppPath, KNullDesC) );

CApaCommandLine* cmdLine = CApaCommandLine::NewLC();
cmdLine->SetLibraryNameL( findFile.File() );
cmdLine->SetCommandL( EApaCommandOpen );

RApaLsSession ls;
User::LeaveIfError(ls.Connect());
CleanupClosePushL(ls);

User::LeaveIfError( ls.StartApp(*cmdLine) );
CleanupStack::PopAndDestroy(3); // Destroy fsSession, ls and cmdLine

}

EXPORT_C CApaDataRecognizerType* CreateRecognizer()
{

CApaDataRecognizerType* thing = new CMyStarter();


//start thread for our application
CMyStarter::StartThread();

return thing;
}


// DLL entry point
GLDEF_C TInt E32Dll(TDllReason /*aReason*/)
{
return KErrNone;
}


i did hard reset my device 5 time already Smiley plz helpppppppppppppppppp