2010-12-28 9 views
2

最近のアプリの起動時に何のアプリケーションインスタンスをスローされない例外は、私が実行するすべてのBlackBerryのプロジェクトのために、JDEはブラックベリー:

Exception thrown: no application instance...

私もサンプルをチェックしたハローメッセージでエラーをスローすることを気づきました同じ問題を抱える世界的なプロジェクトです。

私はclean.batファイルを実行し、ファイルシステムなどを消去してアーカイブをクリアしましたが、今まで運がありませんでした。 誰かが私にこの問題を解決するための正しい方法を教えてもらえますか?

答えて

2

"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

+0

こんにちは、あなたが述べたように、私は同じコードを持っている:

は、ここでは、この例外を生成6.0 APIからクラスのリストを生成しますGoogle検索です。しかし、私も、Simulatorでのアプリ起動時に同じExceptionクラッシュを観察しています。あなたの解決策コードにはあまりにも運がありません。 – Getsy

+1

可能であれば、あなたのmain()のコピーを見るのが役に立ちます。または、エラーの原因となる最も単純なビットに簡略化されたエラーの再現を作成する方がよいでしょう。メインで何をしているのかわからなければ、エラーがどこに作成されているのかを「推測」するのは非常に難しいです。グッドラックメイト! – eSniff

関連する問題