2011-09-19 21 views
2

アプリケーションから内部ストレージにファイルを書き込む際に少し問題があります。nullポインタ例外が発生しますが、これを修正する方法は見つかりません。どの要素がnullであるかを理解していません。ここで内部ストレージ内のデータを保存するAndroid NullPointerException

は、私が使用しているコードです:

hash= jsonObj.getString("hash"); 
Log.w("CLIENT AUTH HASH","SHOW CLIENT AUTH HASH : "+hash);     
FileOutputStream out = context.openFileOutput("autohash",context.MODE_PRIVATE); 
out.write(hash.getBytes()); 
out.close(); 

私はこのファイルを作成し、書き込みしようとしているクラスがActivityではない、それはヘルパークラスのほんの一部のようなものだと、それはだ理由ですcontext=this;を設定しようとするとエラーが表示されます。 そして実際にNullPointerExceptionが、それはこのラインで投げ:

  1. コンテキスト

または

:この例外が発生 FileOutputStream out = context.openFileOutput("autohash",context.MODE_PRIVATE);、と私はそれを得ることができません、
  1. 自動ハッシュ - ファイル(存在するかしないか)。

2番目のシナリオ:

私は内部ストレージにファイルを保存するのと同じ機能を持っていますが、私は別のactivity.Hereからそのメソッドを呼んでいる状況です:

私はインターネット上で受信したパケットが異なり、次のようなことをしています。

in startExecutePacket()ファイルを保存しようとしています。

どのようなヘルプも歓迎されています。ありがとうございます!

+0

てみては?コードまたはスニペットが役に立つ –

+0

コンテキストコンテキスト。私はcontext = thisを使うことはできません。それは私にエラーを与えているからです。私はcontext.getApplicationContext();しようとしました。どちらも役に立たなかった。 –

答えて

3

CallingActivity.java

onCreate() 

helperClass mHelper= new helperClass(CallingActivity.this); 

helperClass.java

//declare a context 
context refContext; 

//constructor 
public helperClass(context mContext) 
{ 
    refContext=mContext; 
} 

//and you code 

    hash= jsonObj.getString("hash"); 
    Log.w("CLIENT AUTH HASH","SHOW CLIENT AUTH HASH : "+hash);     
    FileOutputStream out = refContext.openFileOutput("autohash",Context.MODE_PRIVATE); 
    out.write(hash.getBytes()); 
    out.close(); 

あなたはコンテキストを初期化する方法を、この1

+0

実際には1つのアクティビティだけで問題を解決します。私はファイルを作成して保存するメソッドを呼び出している別のアクティビティを持っています。私はnullpointerexception again.Iをスローします。 –

+0

上記と同じ方法でこれを行うことができます。 –

+0

2番目のシナリオでは機能しません。 –

関連する問題