Blackberry: исключение не выдает экземпляр приложения при запуске приложения - PullRequest
2 голосов
/ 28 декабря 2010

Недавно я заметил, что для любого проекта BlackBerry, который я запускаю, JDE выдает ошибку с сообщением

Исключение: нет экземпляра приложения ...

Я даже проверил пример проекта Hello World, который заканчивается той же проблемой.

Я запустил файл clean.bat, удалил файловую систему и т. Д., Чтобы очистить архивы, но до сих пор не повезло.Может ли кто-нибудь, пожалуйста, направить меня правильно, что должно быть исправить для этого?

1 Ответ

2 голосов
/ 29 декабря 2010

Я предполагаю, что полное исключение: «IllegalStateException: нет экземпляра приложения».Поскольку вы не дали нам много деталей своего кода, я просто расскажу о том, где я обычно сталкиваюсь с этим исключением.

Это обычно вызывается попыткой получить экземпляр приложения до того, как вы вызвали конструктор приложения.Например, следующий код создаст эту ошибку:

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.

Я обычно сталкивался с этим, пытаясь запустить GPS из main () или из статического блока.Но есть несколько классов, которые неявно вызывают getApplicaiton, поэтому, если вы явно не вызываете getApplication, то, возможно, API-интерфейс, который вызывает ваше создание.Я бы попытался переместить код из main в конструктор вашего приложения, если вы можете.

Вот поиск в Google, который выдаст список классов из API 6.0, которые выдают это исключение:

создает сайт IllegalStateException Blackberry: www.blackberry.com/developers/docs/6.0.0api

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...