现在的位置: 首页 > 综合 > 正文

Symbian上常见的错误

2013年12月13日 ⁄ 综合 ⁄ 共 1674字 ⁄ 字号 评论关闭

KERN-EXEC 0 此错误通常出现在进程或线程使用已经销毁服务对象句柄,如调用了某个对象的Close()方法而继续使用此对象句柄
KERN-EXEC 3 此错误在好多情况下都会产生,最常见的情况通常是由于你使用了空指针,比如在对象没有创建的情况下使用其成员变量或方法
USER 11 内存越界 通常情况下是由于你没有给你的数据分配足够的缓冲区造成的。
USER 130 数组越界,如果你访问的RArray 或RPointerArray 数组下标超过了数组长度则会出现此错误
USER 29 此错误大都是因为对描述符取子串操作索引越界所致
USER 42 此错误通常是由于内存非法访问,比如访问指向无效内存的指针。我通常在调试dll的时候出现此错误,主要是没有执行Freeze由于dll修改。依赖dll主程序没有重写编译。函数访问地址出现错误
E32USER-CBase 71 通常情况下出现此错误由于CleanupStack::PushL() 和 CleanupStack::Pop()不匹配引起的,比如调用了CleanStack::PushL() 而忘记调用 CleanStack::Pop()
E32USER-CBase 63 此错误对应于E32USER-CBase 71 也是由于CleanupStack::PushL() 和 CleanupStack::Pop()不匹配引起的,你可能是过多的调用了CleanStack::Pop()
Avkon 59 在s60 2nd中构造一个视图时 不调用BaseConstructL();不会出现异常,移植到s60 3rd 如果不调用BaseConstructL();系统会提示此错误
关于错误代码 -46 第三版中调用未授权或不可用的服务通常会返回 -46的错误
错误代码 cone -8 通常是由于窗口资源没有释放引起的。确认在程序推出后清除了创建窗口的控件
CONE 44 发生此错误可能是由于你在销毁控件的时候,忘记调用 RemoveFromStack() 移除响应事件的控件。
在CEikRichTextEditor中使用RichText()→Reset()对文本清空以后执行如插入文本等操作时出现ETEXT 12的错误。

问题分析:

ETEXT 12 在panic文档中的描述为ECharPosBeyondDocument,因此是插入文本时由于光标的位置越界造成的。执行RichText()→Reset()以后文本被清空了,但是光标位置却仍然停留在原来的位置,系统并不会自动回到0位置。

解决方案:

必须调用如下两句手动的把光标位置设为0就可以了

iRichTextEditor->HandleTextChangedL();
iRichTextEditor->SetCursorPosL(0, EFalse);

继续添加
在平时的软件开发中,其实我们常见的错误也就那么几个,这里我吧自己常见的错误列出来:

 

USER 10 描述符的下标超过其实际的长度。如:HBuf<10>text; text.Mid(11);

 

USER 11 在append或者是copy的时候,目的描述符的长度不够长。

 

USER 42 删除一个并不存在的对象,通常是这种情况:如你有两个指针指向了同一个对象,当你同时将这两个指针删除的时候,就会出问题。还有一种比较常见的情形是在使用一些会将所有权转移的数组(如RPointArray)的时候,比如我new

一个对象temp,然后append到RPointArray中,之后,我又将temp删除,那么在最后,释放RPointArray的时候就会出现USer42的错误。因为temp指向的对象的所有权已经转向了数组。

 

USER 130 使用数组时下表超过数组的最大允许的个数。

 

KEXE 3 控制针的情况,这个是非常常见的了,大家都知道是什么情况。其实,如果你的程序要加载一些库,如果这些库没有的话,有事也会出现空指针的错误。

 

E32USER-CBase (待续)

本文来自CSDN博客,转载请标明出处:
http://blog.csdn.net/arthersophy/archive/2008/12/12/3502265.aspx

抱歉!评论已关闭.