1

最初の実行で 3 つのレコード ストアをインストールするアプリケーションを作成しています。次に、すでにインストールされている値を使用する必要があります。アプリケーションは、エミュレーターとモバイルの両方で最初の実行時に正常に動作します。しかし、2 回目の実行では、スプラッシュ画面の読み込み後に null ポインター例外が表示されます。スプラッシュ スクリーンの後、レコード ストアがロードされます。ただし、一部の機能の最初の実行時に、レコード ストアも削除、更新されます。そんな時でも、midletは問題なく動きます。しかし、モバイルでアプリケーションを 2 回目に開くと、null ポインター例外を示すエラー メッセージが表示されます。

次のヘルプが必要です... 1. 古いレコルストアを使用してエミュレーターを再度実行できますか? もしそうなら、どのように?2. null ポインター例外の問題を修正するにはどうすればよいですか?

助けてください。

4

1 に答える 1

5

要点:スタックトレースを読み取り、それに応じてnullポインタを修正します。

スタックトレースの最初の行には、発生したソースコードの行番号が含まれている必要があります。ソースコードを開き、その行に移動します。次のようになります。

someObject.doSomething();

特に、ドット演算子.を使用してオブジェクトインスタンスにアクセスまたは呼び出す場所を見てください。NullPointerExceptionこのようなコード行のAは、が実際にであることを意味しsomeObjectますnull。それは単に何も参照していません。アクセスしたり、メソッドを呼び出したりすることはできません。

を修正するために必要なのは、それがnullでないNullPointerExceptionことを確認することだけです。someObject

if (someObject == null) {
    someObject = new SomeObject();
}
someObject.doSomething();

someObjectまたは、そうでない場合にのみアクセス/呼び出しを実行しますnull

if (someObject != null) {
    someObject.doSomething();
}
于 2010-01-02T00:12:48.967 に答える