×
Namespaces

Variants
Actions

Archived:MGFetch的使用问题

From Nokia Developer Wiki
Jump to: navigation, search

Archived.png存档: 这篇文章是存档,因为考虑到今天它与第三方开发者建立商业解决方案不相关。

Article Metadata

兼容于
平台: S60 3rd Edition
S60 3rd Edition (initial release)

文章
翻译:
hoolee
最后由 hamishwillee 在 16 Aug 2012 编辑
  • 详细描述

MGFetch(类可以获取多媒体文件夹中的文件名)需要ReadUserData能力。此外模拟器默认还会对DRM能力做检查。当使用MGFetch的应用程序编译成GCCE UDEB模式运行时,会引发KERN-EXEC 3错误。


S60第三版文档(SDK帮助)声明MGFetch不需要任何能力。但是,在使用时却会返回KErrPermissionDenied(-46)错误。只有当程序拥有ReadUserData能力时才能正常工作。当程序运行在模拟器时,缺省还会检查DRM能力,即使没有多媒体文件是需要DRM保护的。


使用MGFetch::RunL()方法的程序,编译为GCCE UDEB模式时,在选择一个多媒体文件时便会产生KERN-EXEC 3错误。这种情况的发生是因为UDEB编译包含的debug代码会消耗很多堆栈内存。


  • 如何重现

当程序使用MGFetch::RunL()方法时,在模拟器上运行它,检查EPOCWIND.OUT这个log文件,并且搜索“*PlatSec* ERROR”字符串。


EPOCWIND.OUT是S60模拟器生成的log文件。默认生成在用户临时文件夹中(通常为C:\Documents and Settings\[Username]\Local Settings\Temp in Windows XP)


  • 解决方案

指定ReadUserData能力,并在mmp工程定义文件中增加堆栈大小设置

EPOCSTACKSIZE 0x5000
This page was last modified on 16 August 2012, at 09:42.
147 page views in the last 30 days.

Was this page helpful?

Your feedback about this content is important. Let us know what you think.

 

Thank you!

We appreciate your feedback.

×