2012-12-24 27 views
1

我正在尝试编写一个应用程序,用于下载和安装cod文件。CodeModuleManager无法为模块分配空间

我有行:

CodeModuleManager.createNewModule(codData.length, codData, codData.length); 

预计返回模块句柄(这是一个int)。但是,它返回0意味着空间不能分配给要安装的模块。我搜索了一下,但coulndt真的找到有关可能导致此问题的任何信息。有任何想法吗 ?

+1

两件事情来检查:1)没有为模块充分应用memmory,模块不超过最大尺寸(COD文件可以比最大模块更大大小; 2)如果在设备上运行,确保您的应用程序已签名并且具有应用程序管理权限。 – Richard

+0

如何添加这些权限?我想我想要安装代码文件,但我知道我的应用程序有验证错误的错误。我应该预先签署鳕鱼文件吗? – Cemre

+1

如果COD文件访问已签名的API,则必须对其进行签名才能运行,但这会在安装后生效。 Coe模块管理API已签名,因此安装模块的应用程序必须经过签名并获得许可。如果设备在BES上激活,则用户或BES可以授予权限。模拟器上需要Niether签名或许可。 – Richard

回答

0

我发现了解决方案:

  1. 我使用的交付/ web目录
  2. 内的COD文件当COD文件是一些大小它被划分为2(或更多)cod文件的上方。在我的情况下,有两个COD文件。一个被命名为abc.cod,另一个被命名为abc-1.cod。你需要有两个cod文件才能进行安装。 (这是真正的问题)
  3. 我注意到在交付/标准文件夹中只有1个cod文件,可能是它没有被分成2个部分,因此CodeModuleManager不能分配空间它作为一个整体(因此分区是必要的毕竟)

然而,即使在这之后可能会遇到的问题,如应用程序的图标,当你覆盖越来越消失cod文件(即当您尝试更新应用程序已经存在)。

我发现使用.jad文件更方便。只需在您的目录中设置正确的MIME类型,并将jadcod文件放在那里。然后使用浏览器打开您的jad文件,应用程序应自动,平稳地由操作系统本身安装/更新。

希望这证明别人有帮助