(Derzeit 52) Programmierung ab 51 Jahren Hinweis FileOutputStream android.content.Context.openFileOutput (java.lang.String, int) 'auf einer Nullobjektreferenz

Angenommen, Sie haben diesen Code

SampleActivity


Context context;
@Override 
protected void onCreate(Bundle savedInstanceState){
   super.onCreate(savedInstanceState);
   setContantView(R.layout.sample);
   context = getApplicationContext();

   new AsyncTask().execute();
}


public void fileWrite(){
   try{
       openFileOutput("fileName",Context.MODE_APPEND);
   }
}

AsyncTask


@Override 
protected void onPostExecute(String s){
   super.onPostExecute(s);

   SampleActivity sampleA = new SampleActivity();
   sampleA.fileWrite();
}

Mit diesem FileOutputStream android.content.Context.openFileOutput(java.lang.String, int)' on a null object reference Ich bekomme eine Fehlermeldung.

Da "Kontext" nicht generiert wird, wenn die Instanz im Code erstellt wird, wird sie zu "NullPointerExeption".

Wenn Sie dies vermeiden möchten> https://qiita.com/old_cat/items/ff4f2116192fd536fb59 Implementieren Sie wie in beschrieben die Rückrufmethode und behandeln Sie den Kontext.

SampleActivity


Context context;
@Override 
protected void onCreate(Bundle savedInstanceState){
   super.onCreate(savedInstanceState);
   setContantView(R.layout.sample);
   context = getApplicationContext();

   AsyncTaskCallBack asyncTaskCallBack = new AsyncTaskCallBack();
   AsyncTask asyncTask = new AsyncTask(asyncTaskCallBack);
}

public class AsyncTaskCallBack(){
   //Sie können hier auch fileOutputStream verwenden
   //Versuchen Sie jedoch, eine andere Methode aufzurufen
   public void one(){
      fileWriter();
   }
}

public void fileWrite(){
   try{
       openFileOutput("fileName",Context.MODE_APPEND);
   }
}

AsyncTask


SampleActivity.AsyncTaskCallBack asyncTaskCallBack;

public AsyncTask(SampleActivity.AsyncTaskCallBack asyncTaskCallBack){
   this.asyncTaskCallBack = asyncTaskCallBack;
}

@Override 
protected void onPostExecute(String s){
   super.onPostExecute(s);
   asyncTaskCallBack.one();
}

Recommended Posts

(Derzeit 52) Programmierung ab 51 Jahren Hinweis FileOutputStream android.content.Context.openFileOutput (java.lang.String, int) 'auf einer Nullobjektreferenz
Programmierung ab 51 Jahren Hinweis - Referenz
Programmierung ab 51 Jahre Hinweis Service - Referenz
Programmierung ab 51 Jahren (derzeit 52) Hinweis Pfad und Datei
Programmierung ab 51 Jahren Hinweis AsyncTask - Referenz [Shakyo]
Programmierung aus einem 51 Jahre alten Memorandum of Thread
(Derzeit 52) Programmierung ab 51 Jahren Hinweis 3 Zeilen Fokus auf Android-Taste verschieben
Planung ab 51 Jahren (derzeit 52) Memorandum VScode javadoc
Programmierung ab 51 Jahren (derzeit 52 Jahre) Hinweis: Fügen Sie jar mit VScode Class.forName hinzu. Java.lang.ClassNotFoundException: com.mysql.cj.jdbc.Drive
Programmier-Memorandum-Prozess-Thread aus 51 Jahre alter Handler-Referenz
Programmierung ab 51 Jahren Hinweis: Bestätigung der Android-Netzwerkverbindung
Programmierung ab 51 Jahren Hinweis: Einschränkungen bei der Hintergrundausführung OverView [Shakyo]
Programmierung von 51 Jahre alten Memorandum Android Timer
Programmierung ab 51 Jahren [Shakyo] Intent IntentFilter-Referenz
Programmierung aus 51 Jahre altem Android-Memo Activity Manager-Memo
Programmierung ab 51 Jahren Hinweis: Starten Sie Android Sevice nicht mehr als einmal. Bestätigung des Dienststarts