Il ne semble pas y avoir d'autorisation de manifeste Android à définir pour le fichier io.Pourquoi Android FileOutputStream lance-t-il une exception NullPointerException?
public class Device extends Activity {
private static final Configuration config = new Configuration();
...
private boolean applyMenuChoice(MenuItem item) {
switch (item.getItemId()) {
...
case R.id.menuSave:
...
configuration.modify(name, to, from, user);
configuration.write();
...
public class Configuration extends Activity {
private final static String CONFIG = "config.txt";
private static StringBuilder config = new StringBuilder();
...
public void write() {
try {
FileOutputStream fos = openFileOutput(CONFIG, Context.MODE_PRIVATE);
fos.write(config.toString().getBytes());
...
Lorsque la méthode d'écriture est invoquée? –
write() est dans la classe Configuration (voir l'extrait ajouté à la question d'origine) et est appelée par applyMenuChoice() dans la classe Device lorsqu'une modification est apportée à la configuration. Le débogueur a été utilisé pour vérifier que la configuration est remplie comme prévu avant toute tentative réelle d'écriture, mais l'exception est levée avant même qu'elle ne tente l'écriture réelle (à l'openFileOutput). Est-il illégal d'utiliser openFileOutput dans un applyMenuChoice? – jacknad
Votre code est très illégal. Vous ne pouvez pas instancier une activité (bien je suppose que vous le pouvez, mais vous n'êtes pas censé le faire) directement avec new(). Si vous souhaitez écrire des données d'une activité dans une autre activité, vous devrez probablement passer les données via un service ou créer une autre méthode write() dans le périphérique – Falmarri