"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();
}
}
これは、アプリケーションインスタンスがUiApplicationオブジェクトのコンストラクタ内でインスタンス化されているために機能します。前のコードと同じように、Applicationオブジェクトが存在する前にインスタンスを取得しようとしていました。
私はmain()や静的ブロックからGPSを起動しようとすると、これが一般的に実行されました。しかし暗黙のうちにgetApplicaitonを呼び出すいくつかのクラスがあります。したがって、明示的にgetApplicationを呼び出していなければ、APIがあなたの呼び出しを呼び出すかもしれません。あなたができるなら、私はmainからコードをアプリケーションのコンストラクタに移動しようとします。
throws IllegalStateException Blackberry site:www.blackberry.com/developers/docs/6.0.0api
こんにちは、あなたが述べたように、私は同じコードを持っている:
は、ここでは、この例外を生成6.0 APIからクラスのリストを生成しますGoogle検索です。しかし、私も、Simulatorでのアプリ起動時に同じExceptionクラッシュを観察しています。あなたの解決策コードにはあまりにも運がありません。 – Getsy
可能であれば、あなたのmain()のコピーを見るのが役に立ちます。または、エラーの原因となる最も単純なビットに簡略化されたエラーの再現を作成する方がよいでしょう。メインで何をしているのかわからなければ、エラーがどこに作成されているのかを「推測」するのは非常に難しいです。グッドラックメイト! – eSniff