【问题标题】:Signed J2me app hanging at first start签名的 J2me 应用程序在第一次启动时挂起
【发布时间】:2013-01-10 06:52:11
【问题描述】:

在我的由 veriSign 签名的 j2me 应用程序中,在执行 PIM.getInstance().openPIMList(..) 操作时,在接受 always 或 yes 权限时遇到问题。

当我的应用程序在第一次安装时执行下面的代码行时,它会挂起并且不显示主屏幕,而是显示黑色背景的挂起屏幕。当我退出并重新启动应用程序时,即使我将其删除并重新放回并正常运行,它也可以正常运行,但我删除并重新启动手机并尝试再次运行它会显示与上述相同的问题。

我的导致请求权限的行代码在这里实际上也导致了问题。还有一件事,此错误仅发生在实际上允许ALWAYS启动权限的特定手机上。

我在诺基亚 X2-05 上检查它,它显示了问题,但在诺基亚 C3-02 上却没有,因为它不允许在应用程序启动时自动获得 ALWAYS 权限。

private void permissionSettings() throws PIMException {
       PIM.getInstance().openPIMList(PIM.CONTACT_LIST, PIM.READ_WRITE);
}

上面是第一次启动时挂起的代码 sn-p。

【问题讨论】:

  • 好问题,遗憾的是我怀疑你是否会在这里找到有足够经验的人来获得你需要的答案。
  • 是的,我从上周开始一直在尝试,现在把这个问题放在这里。希望有人可能有过这样的经历:)
  • 我会尝试使用 midlet 进行尽可能简化的测试,将 permissionSettings 中的代码包装到 try-catch 块中,如果有异常,它将捕获并报告任何异常
  • 好吧,没有抛出任何异常,因为我尝试通过放入 try catch 来尝试,问题出现在我上面提到的特定手机以及应用程序签名时。如果我在未签署应用程序的情况下运行它可以工作很好(可能是因为那个时候它不要求总是允许?只是一个猜测)

标签: java-me permissions midp-2.0 jsr75


【解决方案1】:

对我来说这听起来像是手机上的一个错误,用于验证 j2me 库的 TCK 测试非常薄弱,所以很多这样的错误都可以解决。

似乎关键在权限中,所以我会尝试在这方面玩耍。确保您在 .jad 中设置了正确的权限(在签名之前),如果您可以尝试使用不同安全域或证书中的证书进行签名,请尝试在运行小程序之前更改权限级别。

我希望您只能解决该问题,因此我不会提出具体的建议,而是在这些领域内做出改变。

【讨论】:

  • 虽然这不是特定手机的错误,而是诺基亚发布的所有手机上的错误,因为我已经发布给他们并发现其他人有同样的问题。我找到了解决这个问题的方法,为了方便起见接受你的回答
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-23
  • 2014-04-15
  • 1970-01-01
相关资源
最近更新 更多