Java me 已签名的J2me应用程序在第一次启动时挂起

Java me 已签名的J2me应用程序在第一次启动时挂起,java-me,permissions,midp-2.0,jsr75,Java Me,Permissions,Midp 2.0,Jsr75,在我的由veriSign签名的j2me应用程序中,在执行PIM.getInstance().openPIMList(…)操作时,在接受“始终”或“是”权限时出现问题 当我的应用程序在第一次安装时执行低于代码行的操作时,它会挂起,不会出现在主屏幕上,而是出现一个黑色背景挂起的屏幕。当我退出并重新启动应用程序时,它会正常运行,没有任何问题,即使我删除它并将其放回原处,运行正常,但我删除并重新启动手机并尝试再次运行,它显示的问题与我上面描述的相同 我的导致询问权限的代码行在这里,这实际上也是导致问题的

在我的由veriSign签名的j2me应用程序中,在执行
PIM.getInstance().openPIMList(…)
操作时,在接受“始终”或“是”权限时出现问题

当我的应用程序在第一次安装时执行低于代码行的操作时,它会挂起,不会出现在主屏幕上,而是出现一个黑色背景挂起的屏幕。当我退出并重新启动应用程序时,它会正常运行,没有任何问题,即使我删除它并将其放回原处,运行正常,但我删除并重新启动手机并尝试再次运行,它显示的问题与我上面描述的相同

我的导致询问权限的代码行在这里,这实际上也是导致问题的原因。还有一件事,这个错误只发生在特定的手机上,这些手机实际上允许启动时总是有
权限

我正在通过诺基亚X2-05检查它,它显示出问题,但在诺基亚C3-02上,它不允许在应用程序启动时自动获得
始终
权限

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

上面是第一次启动时挂起的代码片段。

对我来说,这听起来像是手机上的一个bug,用于验证j2me库的TCK测试非常弱,所以像这样的很多bug都能通过

似乎关键在于权限,所以我会尝试在这个区域玩。请确保您在.jad中设置了正确的权限(签名前),如果您可以在其他安全域或证书中获得一个尝试使用证书签名的权限,请在运行小程序之前尝试更改权限级别


我希望你只能够解决这个问题,因此,与其提出具体的建议,我将在这些领域内改变一些东西。

好问题,很遗憾,我怀疑你是否能在这里找到有足够经验的人来获得你需要的答案。是的,从上周开始我一直在努力,现在把这个问题放在这里。希望有人曾经有过这样的经历:)我会尝试使用尽可能简化的midlet进行测试,将
permissionSettings
中的代码包装到try-catch块中,该块将捕获并报告任何异常,如果有异常,那么不会抛出任何异常,因为我通过放入try-catch进行了尝试,问题出现在我上面提到的特定手机以及应用程序签名时。如果我在未签名的情况下运行应用程序,它可以正常工作(可能是因为当时它并不总是要求获得许可?只是猜测)虽然这不是一个特定手机上的bug,但在诺基亚发布的所有手机上都有,因为我已经发布给他们,发现其他人也有同样的问题。我找到了解决这个问题的办法,为了方便起见,我接受了你的答案