Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/13: Рейтинг темы: голосов - 13, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 21.11.2016
Сообщений: 13

Вылетает приложение при доступе к внутренний памяти через функцию FileOutputStream

08.11.2019, 21:12. Показов 2616. Ответов 4

Студворк — интернет-сервис помощи студентам
Добрый день.
Возникла проблема, что при попытке считать из памяти приложение вылетает. Создал простую программу для теста. Суть программы записать введёные пользователем данные и после по кнопке их вывести.
Но возникла проблема, при попытке записать данные программа вылетает. Пробовал на 8 и на 9 андроиде. Использую внутреннюю память (не sd память).

Заранее всем спасибо!

Сам код:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
package com.example.writeread;
 
import androidx.appcompat.app.AppCompatActivity;
 
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
 
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
 
public class MainActivity extends AppCompatActivity
{
 
    private EditText v_vod;
    private TextView viv;
 
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        v_vod=(EditText) findViewById(R.id.vvod);
        viv = (TextView) findViewById(R.id.vivod);
        setContentView(R.layout.activity_main);
    }
 
    public void write (View v)
    {
        String d;
        d =v_vod.getText().toString();
        Toast.makeText(this, "Перед блоком try", Toast.LENGTH_SHORT).show();
        try {
            FileOutputStream out = openFileOutput("check.txt",MODE_APPEND);
            out.write(d.getBytes());
            out.close();
            v_vod.setText("");
            Toast.makeText(this, "Записали", Toast.LENGTH_SHORT).show();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
            Toast.makeText(this, "Исключение №1", Toast.LENGTH_SHORT).show();
        } catch (IOException e) {
            e.printStackTrace();
            Toast.makeText(this, "Исключение №2", Toast.LENGTH_SHORT).show();
        }
 
    }
 
    public void read (View v)
    {
        try
        {
            FileInputStream in = openFileInput("check.txt");
            InputStreamReader read = new InputStreamReader(in);
            BufferedReader buff = new BufferedReader(read);
            StringBuffer str_buff = new StringBuffer();
            String lines;
            Toast.makeText(this, "Читаем", Toast.LENGTH_SHORT).show();
            while ((lines = buff.readLine())!=null)
            {
                str_buff.append(lines+"\n");
            }
 
            viv.setText(str_buff);
 
        } catch (FileNotFoundException e) {
            e.printStackTrace();
            Toast.makeText(this, "Исключение №3", Toast.LENGTH_SHORT).show();
        } catch (IOException e) {
            e.printStackTrace();
            Toast.makeText(this, "Исключение №4", Toast.LENGTH_SHORT).show();
        }
    }
}
Манифест:
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.writeread">
 
    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
 
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
 
</manifest>
Лог:
Кликните здесь для просмотра всего текста
2019-11-08 21:10:44.474 10422-10422/com.example.writeread E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.writeread, PID: 10422
java.lang.IllegalStateException: Could not execute method for android:onClick
at androidx.appcompat.app.AppCompatViewInfl ater$DeclaredOnClickListener.onClick(App CompatViewInflater.java:390)
at android.view.View.performClick(View.java :6294)
at android.view.View$PerformClick.run(View. java:24770)
at android.os.Handler.handleCallback(Handle r.java:790)
at android.os.Handler.dispatchMessage(Handl er.java:99)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(Activity Thread.java:6494)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$Meth odAndArgsCaller.run(RuntimeInit.java:438 )
at com.android.internal.os.ZygoteInit.main( ZygoteInit.java:807)
Caused by: java.lang.reflect.InvocationTargetExcept ion
at java.lang.reflect.Method.invoke(Native Method)
at androidx.appcompat.app.AppCompatViewInfl ater$DeclaredOnClickListener.onClick(App CompatViewInflater.java:385)
at android.view.View.performClick(View.java :6294) 
at android.view.View$PerformClick.run(View. java:24770) 
at android.os.Handler.handleCallback(Handle r.java:790) 
at android.os.Handler.dispatchMessage(Handl er.java:99) 
at android.os.Looper.loop(Looper.java:164) 
at android.app.ActivityThread.main(Activity Thread.java:6494) 
at java.lang.reflect.Method.invoke(Native Method) 
at com.android.internal.os.RuntimeInit$Meth odAndArgsCaller.run(RuntimeInit.java:438 ) 
at com.android.internal.os.ZygoteInit.main( ZygoteInit.java:807) 
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'android.text.Editable android.widget.EditText.getText()' on a null object reference
at com.example.writeread.MainActivity.write (MainActivity.java:39)
at java.lang.reflect.Method.invoke(Native Method) 
at androidx.appcompat.app.AppCompatViewInfl ater$DeclaredOnClickListener.onClick(App CompatViewInflater.java:385) 
at android.view.View.performClick(View.java :6294) 
at android.view.View$PerformClick.run(View. java:24770) 
at android.os.Handler.handleCallback(Handle r.java:790) 
at android.os.Handler.dispatchMessage(Handl er.java:99) 
at android.os.Looper.loop(Looper.java:164) 
at android.app.ActivityThread.main(Activity Thread.java:6494) 
at java.lang.reflect.Method.invoke(Native Method) 
at com.android.internal.os.RuntimeInit$Meth odAndArgsCaller.run(RuntimeInit.java:438 ) 
at com.android.internal.os.ZygoteInit.main( ZygoteInit.java:807) 
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
08.11.2019, 21:12
Ответы с готовыми решениями:

Приложение вылетает, сообщая о нехватке памяти
Признаться, я долгое время искал решение своей проблемы сам и во многом ее решил, однако вылеты все же продолжаются... В итоге решил таки...

Поймать exception, который вылетает при доступе к элементу пустого вектора
Подскажите как правильно поймать exception, который вылетает при доступе к 1 элементу пустого вектора. #include &lt;iostream&gt; ...

Вылетает очень важное приложение из-за нехватки памяти
На смартфоне с андроидом версии 4.0 вылетает очень важное приложение, свернутое в фоновый режим, при одновременном использовании с...

4
1570 / 1168 / 426
Регистрация: 08.05.2012
Сообщений: 5,219
08.11.2019, 21:30
Что в разметке?
0
0 / 0 / 0
Регистрация: 21.11.2016
Сообщений: 13
08.11.2019, 21:32  [ТС]
Цитата Сообщение от ExFau$t Посмотреть сообщение
Что в разметке?
Я не так давно занимаюсь изучением программирования под android. Что именно вы имеете ввиду?
Проблема ещё в том, что месяц назад примерно такой метод работал. На днях стал крашить приложение. Возможно что то в android studio надо обновить либо как то может то связано с какими то обновлениями. К сожалению информации не смог найти. Бьюсь уже не первый день.
0
1570 / 1168 / 426
Регистрация: 08.05.2012
Сообщений: 5,219
08.11.2019, 21:35
Лучший ответ Сообщение было отмечено Александр889900 как решение

Решение

Вот эту строку надо поднять после super:
setContentView(R.layout.activity_main);
И приложить сюда файл activity_main.xml.
0
0 / 0 / 0
Регистрация: 21.11.2016
Сообщений: 13
09.11.2019, 18:54  [ТС]
Перенёс строчку и заработало. Спасибо огромное!
На всякий сам код:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
package com.example.writeread;
 
import androidx.appcompat.app.AppCompatActivity;
 
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
 
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
 
public class MainActivity extends AppCompatActivity
{
 
    private EditText v_vod;
    private TextView viv;
 
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        v_vod=(EditText) findViewById(R.id.vvod);
        viv = (TextView) findViewById(R.id.vivod);
        //setContentView(R.layout.activity_main);
    }
 
    public void write (View v)
    {
        String d;
        d =v_vod.getText().toString();
        Toast.makeText(this, "Перед блоком try", Toast.LENGTH_SHORT).show();
        try {
            FileOutputStream out = openFileOutput("check.txt",MODE_APPEND);
            //OutputStreamWriter out = new OutputStreamWriter(fout);
            out.write(d.getBytes());
            out.close();
            //out.write(d);
            //out.close();
            v_vod.setText("");
            Toast.makeText(this, "Записали", Toast.LENGTH_SHORT).show();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
            Toast.makeText(this, "Исключение №1", Toast.LENGTH_SHORT).show();
        } catch (IOException e) {
            e.printStackTrace();
            Toast.makeText(this, "Исключение №2", Toast.LENGTH_SHORT).show();
        }
 
    }
 
    public void read (View v)
    {
        try
        {
            FileInputStream in = openFileInput("check.txt");
            InputStreamReader read = new InputStreamReader(in);
            BufferedReader buff = new BufferedReader(read);
            StringBuffer str_buff = new StringBuffer();
            String lines;
            Toast.makeText(this, "Читаем", Toast.LENGTH_SHORT).show();
            while ((lines = buff.readLine())!=null)
            {
                str_buff.append(lines+"\n");
            }
 
            viv.setText(str_buff);
 
        } catch (FileNotFoundException e) {
            e.printStackTrace();
            Toast.makeText(this, "Исключение №3", Toast.LENGTH_SHORT).show();
        } catch (IOException e) {
            e.printStackTrace();
            Toast.makeText(this, "Исключение №4", Toast.LENGTH_SHORT).show();
        }
    }
}
activity_main.xml:
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">
 
    <EditText
        android:id="@+id/vvod"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="140dp"
        android:layout_marginBottom="74dp"
        android:autofillHints=""
        android:ems="10"
        android:hint="@string/Vvod"
        android:inputType="textPersonName"
        app:layout_constraintBottom_toTopOf="@+id/vivod"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />
 
    <TextView
        android:id="@+id/vivod"
        android:layout_width="218dp"
        android:layout_height="0dp"
        android:layout_marginTop="259dp"
        android:layout_marginBottom="339dp"
        app:layout_constraintBottom_toTopOf="@+id/button2"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />
 
    <Button
        android:id="@+id/Check"
        android:layout_width="wrap_content"
        android:layout_height="0dp"
        android:layout_marginStart="42dp"
        android:layout_marginEnd="104dp"
        android:layout_marginBottom="37dp"
        android:onClick="write"
        android:text="@string/Write"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toStartOf="@+id/button2"
        app:layout_constraintStart_toStartOf="parent" />
 
    <Button
        android:id="@+id/button2"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginEnd="45dp"
        android:layout_marginBottom="38dp"
        android:onClick="read"
        android:text="@string/Read"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toEndOf="@+id/Check" />
 
</androidx.constraintlayout.widget.ConstraintLayout>
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
09.11.2019, 18:54
Помогаю со студенческими работами здесь

При запуске любой программы от имени администратора вылетает окошко "отказано в доступе"
Вчера заметил, что при запуске ЛЮБОЙ программы от имени администратора вылетает окошко &quot;отказано в доступе&quot;, или &quot;у вас нет...

Вылетает при удалении памяти
У меня тут конфуз: class InversTree { struct element { double data; element *parent; ...

Я компилирую код из .cs файла через csc.exe и у меня вылетает приложение
Я пишу простую программу в .cs файле и компилирую через csc.exe. У меня есть .dll сборка из которой я беру функции. Но программа если я...

Приложение вылетает при запуске
Всем привет. Прошу сильно камнями не бросать, только-только начал изучать Objective-C и столкнулся с такой проблемой. При запуске...

Вылетает приложение при запуске
Здравствуйте. Столкнулся со следующей проблемой. В приложении при запуске подключаются сразу несколько фрагментов, в каждом из которых...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru