2011-07-17 9 views
0

内部ストレージ用のファイルを作成していますが、データが書き込まれるときに問題が発生しています。私はそれが呼び出されたときに正しいデータを取得することを知っています(Logcatタグを使ってそれをチェックしました)が、FileOutputStreamを開くとすぐに、2行目にNullPointerExceptionがあると表示されます:内部ファイルへのデータの書き込み - ContextWrapper NullPointerException

static ContextWrapper wrap = new ContextWrapper(context); 
FileOutputStream gamesave = wrap.openFileOutput (FILENAME, Context.MODE_PRIVATE); 
gamesave.write(DATA.getBytes()); 
gamesave.close(); 

私は他の質問を見てきましたが、NullPointerExceptionがそこにある理由を理解できません。正しい手順に従っているようです。

+0

ここはNPEですか?どのラインで – Bozho

+0

btw、 'static' ..?これは本当のコードですか? – Bozho

+0

2行目。 ContextWrapperをインスタンス化してはいけないのでしょうか? – Anna

答えて

0

私はあなたのcontext VAR(すなわち、ApplicationContextの)で間違ったコンテキストを持っていると思います。 Wrapperなしで直接コンテキストを使用してみてください。

+0

問題はアクティビティではないということです!それがこの仕事をする唯一の方法ですか? – Anna

+0

どこからコンテキストを取得しますか? – Mannaz

+0

私はクラスのコンストラクタを作成することができますが、そこからメソッドを借りている複数の場所があるので、他のクラスのクラスのインスタンスを複数作成しているという問題が原因です。 – Anna

0

なぜContextWrapperを作成していますか?それをする理由はありません。手元にあるコンテキストを使用します。アクティビティがアクティビティの場合はアクティビティ、そうでない場合はコードに渡されます。このためのコンテキストとして、アプリケーションを使用するために完全に罰金です

注意。

関連する問題