0

こんにちは、JSON 配列を内部ストレージに保存するプロジェクトがあります。これが私のコードです:

public void createFile(String data){
    try{
        FileOutputStream fos = openFileOutput("userObj", Context.MODE_PRIVATE);
        fos.write(data.getBytes());
        fos.close();
        Log.d(TAG, "Successfully created userObj file.");
    }catch (Exception e){
        Log.d(TAG, "Failed to create userObj " + e);
    }
}

しかし、私が電話しているとき、私createFile(response); は得ています

java.lang.NullPointerException at android.content.ContextWrapper.openFileOutput(ContextWrapper.java:180)
4

2 に答える 2

0

android.content.ContextWrapper.openFileOutput(ContextWrapper.java:180) で java.lang.NullPointerException を取得しています

使用している有効なものがありませんContext

Activityで自分自身をインスタンス化した可能性がありますnew。そうしないでください。アクティビティは、フレームワークによってのみインスタンス化する必要がありますIntent。アラウンドを渡す必要がある場合は、アラウンドなどContextのフレームワークで初期化Contextされたオブジェクトへの参照を渡しますActivity

于 2014-03-25T06:49:46.123 に答える
0
  1. 内部ストレージまたは外部ストレージを使用する場合でも、WRITE_EXTERNAL_STORAGE 権限があるかどうかを確認してください。
  2. ファイルパスが正しいかどうかを確認してください。ファイルパスを作成する必要がありますEnvironment.getExternalStorageDirectory ()

注: ここで「外部」という言葉を混同しないでください。このディレクトリは、メディア/共有ストレージと考えるとよいでしょう。これは、比較的大量のデータを保持できるファイル システムであり、すべてのアプリケーションで共有されます (権限を強制しません)。従来、これは SD カードですが、保護された内部ストレージとは別のデバイスに内蔵ストレージとして実装され、コンピュータにファイルシステムとしてマウントできる場合もあります。

于 2014-03-25T06:45:58.927 に答える