Join Now
Quality Rating:
  • Currently 0.0 / 5
(0.0 / 5 - 0 votes cast)
This page was last modified 02:49, 15 April 2008.

MGFetch的使用问题

From Forum Nokia Wiki

KIS000765


  • 开发伙伴平台:

S60 3rd Edition


  • 详细描述

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
 
Powered by MediaWiki
     
     RDF Facets:
     
     
     qfnZtypeQUqfnTypeZCommunityContentQ
     qfnZtypeQUqfnTypeZWebpageQ
     qfnZtypeQUqfnTypeZWikiContentQ
     qmarsZlanguageQUxhttpE3aE2fE2fswE2enokiaE2ecomE2flanguageE2d1E2fenX