2011-09-19 96 views
2

從我的應用程序寫入內部存儲器中的文件時遇到了一些問題。我開始了一個空指針異常,但找不到修復它的方法..而且實際上可以不明白哪一個元素是空的。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在這行拋出:FileOutputStream out = context.openFileOutput("autohash",context.MODE_PRIVATE);,我不能得到它,這導致此異常:

  1. 上下文

  1. autohash - 文件(存在或不存在)。

第二種情況:

我節省了內部存儲的文件相同的功能,但我打電話從另一個activity.Here該方法的情況是:

我有不同的數據包通過互聯網接收,我正在做這樣的事情:

BasePacket packet; //all other packets extends this class. 
byte[] buffer=byte[1024]; 
//packet calculations 
switch(packetType){ 
    case startPacket: 
    packet = new startPacket(/*params*/); 
    packet.startExecutePacket(); 
case endPacket: 
    //same procedure 
} 

和在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(); 

與這一個

+0

實際上,解決我的問題只有一個Activity.I有另一個活動,我只是調用創建和保存文件的方法..它會再次拋出一個nullpointerexception.I將更新我的問題與第二種情況。 –

+0

您可以通過與上述相同的方式來執行 –

+0

它不適用於第二種情況。 –

相關問題