S60当程序崩溃时,大多数的S60 V3手机只显示“main 程序已关闭”的对话框,并没有对这个错误有更多的描述。这就给我我们带来了麻烦,因为不知道是哪个程序关闭了。

 Main问题原理:手机在开机时会自动运行系统程序和设定了开机自动运行的软件(后台线程),如果某个需要运行的文件损坏了或与系统不兼容,那手机就会提示“Main程序已关闭”,然后自动关闭该线程,而且大部分文件出了问题,一般都只是统一显示“Main程序已关闭”,而不会提示是哪个软件,这样就给我们追踪造成错误的源文件造成了麻烦。

在S60第一版和第二版上,只要在手机的C:\System\Bootdata文件夹下建立一个空白的文件,并且命名为“ErrRD”。这样下次当系统发生错误的时候,就会提示错误信息以及错误类型和代码。但是在S60 V3的手机上,这个位置不再生效,只能创建在C:/Resource这个文件夹里面,但是由于第三版的安全性,该文件夹是只读属性的,在手机上显然无法创建这个文件。这个时候可以下载“ErrRD.sisx“(用PKG写的,下载地址)。安装完成后重启机器,如果再次发生错误的话,就会提示是哪个软件出错了,这个时候可以根据提示吧软件给删除了。

 ErrRD主要是应用于S60的模拟器上的,有助于开发人员充分了解软件和系统的冲突以及软件的BUG,对于一般用户来说没有什么用处。

如果你的手机没有发生过系统错误,但是却在C盘莫名其妙的有ErrRD这个文件,可以下载安装安装System Explorer v 0.21这个软件,因为System Explorer v 0.21安装包中也有这个C:\resource\errrd安装文件,所以在安装时System Explorer v 0.21由于系统冲突,系统会把C:\resource\errrd给删除,安装System Explorer v 0.21之后再把这个软件给卸载即可。

下面给出一些错误代码:

KErrNone 0  
KErrNotFound-1       找不到指定文件  
KErrGeneral-2        一般错误  
KErrCancel-3         操作被取消  
KErrNoMemory-4       内存不足  
KErrNotSupported-5     不支持所要求的操作   
KErrAgument-6        错误要求  
KErrTotalLossOfprecision-7 精确的失去总和  
KErrBadHandle-8       错误的物件      
KErrOverflow-9        超出限定的界限  
KErrUderflow-10       少于限定的界限  
KErrAlreadyExsits-11    已经存在了  
KErrPathNotFound-12    找不到指定的目录  
KErrDided-13         程序关闭  
KErrLnUse-14         指定的物件正被其他程序使用中  
KErrServerTerminated-15    服务器已关闭  
KErrServerBusy-16       服务器正忙  
KErrCompletion-17        完成的过程中出现错误  
KErrNotReady-18         还没准备好  
KErrUnknow-19          不知名的错误  
KErrCorrupt-20         错误  
KErrAccessDenied-21      拒绝接受  
KErrLocked-22          锁闭  
KErrWrite-23          读写失败  
KErrDisMounted-24       错误的磁盘  
KErrEof-25           出乎预料的文件到了尾端  
KErrDiskFull-26        磁盘已满  
KErrBadDiver-27        驱动损坏  
KErrBadName-28         不允许的名称  
KErrCommsLineFail-29      Comms线失败  
KErrCommsFrame-30        Comms线框框错误  
KErrCommsOverrun-31       Comms线超频错误  
KErrCommsParity-32        Comms同位错误  
KErrTimeOut-33          时间到了  
KErrCouldNotConect-34      连接失败  
KErrCouldNotDisconect-35     断连接失败  
KErrDisconnected-36        断了  
KErrBadLibraryEntryPoint-37   损坏的资料库接入点  
KErrBadDescriptor-38       损坏的描述讯息块  
KErrAbort-39            中断  
KErrToolBig-40           太大  
KErrDivideByZero-41        除于零  
KErrBadPower-42           电池没电  
KErrDirFull-43           目录满  
KErrHardwareNotAvallable-44    硬件未准备好

Cymbi同意,原文转载自:http://www.dos60.com/thread-19-1-1.html