最近,我注意到对于我运行的任何BlackBerry项目,JDE会抛出错误消息
抛出异常:没有应用程序实例......
我甚至检查了一个示例hello world项目,最终遇到了同样的问题。
我确实运行了clean.bat文件,擦除文件系统等工作以清除档案,但直到现在都没有运气。 有人可以正确指导我应该解决这个问题吗?
答案 0 :(得分:2)
我假设完整的异常是:“IllegalStateException:没有应用程序实例”。由于您没有向我们提供有关代码的许多详细信息,因此我将仅谈谈我在此异常中遇到的问题。
这通常是在调用Application的构造函数之前尝试获取应用程序实例时引起的。例如,以下代码将创建该错误:
public class HelloWorld extends UiApplication
{
public HelloWorld(){
pushScreen(new HelloWorldScreenBlank());
}
public static void main(String[] args) {
Application app = Application.getApplication();
HelloWorld theApp = new HelloWorld();
theApp.enterEventDispatcher();
}
}
此代码生成以下控制台代码:
llegalStateException
no application instance
net_rim_cldc-8(4B84A78F)
Application
getApplication
0x2EFA
HW_5$2e0(4D1A6F55)
HelloWorld
main
0x167
但以下代码不会产生异常:
public class HelloWorld extends UiApplication
{
public HelloWorld(){
Application app = Application.getApplication();
pushScreen(new HelloWorldScreenBlank());
}
public static void main(String[] args) {
HelloWorld theApp = new HelloWorld();
theApp.enterEventDispatcher();
}
}
这是有效的,因为Application实例是在UiApplication对象的构造函数中实例化的。和前面的代码一样,我们试图在Application对象存在之前获取实例。
我经常遇到尝试从main()或静态块启动GPS。但是有一些类隐式调用getApplicaiton,所以如果你没有显式调用getApplication,那么可能是你调用的API调用。如果可以的话,我会尝试将代码移出main并进入Application的构造函数。
以下是Google搜索,它将生成6.0 API中的类列表,这些类会产生此异常:
抛出IllegalStateException 黑莓 网站:www.blackberry.com/developers/docs/6.0.0api