Почему этот Android FileOutputStream генерирует исключение NullPointerException? - PullRequest
1 голос
/ 16 августа 2010

Похоже, что нет никакого разрешения манифеста Android, которое необходимо установить для файла io.

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());
            ...

Ответы [ 3 ]

1 голос
/ 17 августа 2010

Замена нелегальной инстанциации действия правильными методами решила эту проблему. Большое спасибо (снова) Фалмарри.

0 голосов
/ 09 марта 2012

Исключение выдается в этом сценарии, когда этот указатель неверен.Вы, вероятно, создали действие, используя его ctor как обычный объект и не используя начальную активность намерения.В этом случае не вызывайте openFileOutput или this.openFileOutput, но вы должны отправить контекст, в котором вы находитесь, в качестве аргумента функции write () и использовать этот контекст, то есть:

write(Context context)
{
     context.openFileOutput(...)
     ...
0 голосов
/ 16 августа 2010

Куда вы пытаетесь записать свой файл?Если он находится на SD-карте устройства, вам нужно установить WRITE_EXTERNAL_STORAGE-разрешение в вашем android-манифесте.Вам также может понадобиться указать путь, а не просто использовать имя файла.

...