Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
_Dasha_
0 / 0 / 0
Регистрация: 19.12.2013
Сообщений: 42
#1

Фрагменты: приложение вылетает при 4-ом нажатии на кнопку - Android

08.03.2016, 11:26. Просмотров 245. Ответов 13
Метки нет (Все метки)

Здравствуйте, в фрагменте есть кнопка, при нажатии на неё 3 раза приложение работает, на 4 вылетает, и пишет, что это из-за (View v = inflater.inflate(R.layout.fragment2_1, null); ). Как это исправить?

Java
1
2
3
4
5
6
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View v = inflater.inflate(R.layout.fragment2_1, null);
        btn8 = (Button) v.findViewById(R.id.button8);
        btn8.setOnClickListener(this);
        return v;
    }
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.03.2016, 11:26     Фрагменты: приложение вылетает при 4-ом нажатии на кнопку
Посмотрите здесь:

Вылетает приложение при возникновении ошибки Android
Вылетает приложение при чтении файла Android
Android Сброс всех данных при нажатии на кнопку
Android Ошибка при нажатии на кнопку
Android Вылетает приложение при использовании Adobe Air
Android При нажатии на кнопку приложение закрывается
Вылетает приложение при обращении к серверу Android
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Паблито
2013 / 1755 / 545
Регистрация: 12.05.2014
Сообщений: 6,208
Завершенные тесты: 1
08.03.2016, 12:08     Фрагменты: приложение вылетает при 4-ом нажатии на кнопку #2
Java
1
View v = inflater.inflate(R.layout.fragment2_1, null, false);
и логи ошибки надо видеть что бы не гадать

и где сам метод onClick ?
CoolMind
418 / 401 / 65
Регистрация: 06.10.2012
Сообщений: 1,723
08.03.2016, 12:09     Фрагменты: приложение вылетает при 4-ом нажатии на кнопку #3
_Dasha_, добрый день!
Вы можете привести больше кода? Например, onClick.
Также не могли бы показать лог ошибки?
Java
1
View v = inflater.inflate(R.layout.fragment2_1, null);
рекомендуют заменять на
Java
1
View v = inflater.inflate(R.layout.fragment2_1, container, false);
_Dasha_
0 / 0 / 0
Регистрация: 19.12.2013
Сообщений: 42
08.03.2016, 12:53  [ТС]     Фрагменты: приложение вылетает при 4-ом нажатии на кнопку #4
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
public void onClick(View v) {
        fTrans = getFragmentManager().beginTransaction();
        switch (v.getId()) {
            case (R.id.button8):
                fTrans.replace(R.id.frgmCont, frag2_2);
                break;
        
            default:
                break;
        }
 
        fTrans.commit();
    }
CoolMind
418 / 401 / 65
Регистрация: 06.10.2012
Сообщений: 1,723
08.03.2016, 12:57     Фрагменты: приложение вылетает при 4-ом нажатии на кнопку #5
_Dasha_, девушка, тогда нужен ещё код фрагмента frag2_2. Вы понимаете, что нажимая на кнопку, вы фактически замещаете один фрагмент другим? И во второй фрагменте кнопка будет уже другая. Нужен и её код.
_Dasha_
0 / 0 / 0
Регистрация: 19.12.2013
Сообщений: 42
08.03.2016, 12:58  [ТС]     Фрагменты: приложение вылетает при 4-ом нажатии на кнопку #6
03-08 15:58:03.858 10713-10713/com.vda.pomo E/art: Throwing OutOfMemoryError "Failed to allocate a 2669292 byte allocation with 1600996 free bytes and 1563KB until OOM"
03-08 15:58:03.868 10713-10713/com.vda.pomo E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.vda.pomo, PID: 10713
java.lang.OutOfMemoryError: Failed to allocate a 2669292 byte allocation with 1600996 free bytes and 1563KB until OOM
at dalvik.system.VMRuntime.newNonMovableArray(Native Method)
at android.graphics.BitmapFactory.nativeDecodeAsset(Native Method)
at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:741)
at android.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java:562)
at android.graphics.drawable.Drawable.createFromResourceStream(Drawable.java:1014)
at android.content.res.Resources.loadDrawableForCookie(Resources.java:3702)
at android.content.res.Resources.loadDrawable(Resources.java:3575)
at android.content.res.TypedArray.getDrawable(TypedArray.java:750)
at android.view.View.<init>(View.java:3939)
at android.widget.TextView.<init>(TextView.java:923)
at android.widget.TextView.<init>(TextView.java:918)
at android.support.v7.widget.AppCompatTextView.<init>(AppCompatTextView.java:60)
at android.support.v7.widget.AppCompatTextView.<init>(AppCompatTextView.java:56)
at android.support.v7.app.AppCompatViewInflater.createView(AppCompatViewInflater.java:92)
at android.support.v7.app.AppCompatDelegateImplV7.createView(AppCompatDelegateImplV7.java:938)
at android.support.v7.app.AppCompatDelegateImplV7.onCreateView(AppCompatDelegateImplV7.java:992)
at android.support.v4.view.LayoutInflaterCompatHC$FactoryWrapperHC.onCreateView(LayoutInflaterCompatHC.java:44)
at android.view.LayoutInflater$FactoryMerger.onCreateView(LayoutInflater.java:181)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:732)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:813)
at android.view.LayoutInflater.inflate(LayoutInflater.java:511)
at android.view.LayoutInflater.inflate(LayoutInflater.java:415)
at com.vda.pomo.formul.Fragment2_5.onCreateView(Fragment2_5.java:53)
at android.support.v4.app.Fragment.performCreateView(Fragment.java:1962)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1067)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1248)
at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:738)
at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1613)
at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:517)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:145)
at android.app.ActivityThread.main(ActivityThread.java:5832)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1399)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194)

Добавлено через 47 секунд
у неё код такой же
CoolMind
418 / 401 / 65
Регистрация: 06.10.2012
Сообщений: 1,723
08.03.2016, 13:09     Фрагменты: приложение вылетает при 4-ом нажатии на кнопку #7
_Dasha_, если почитать http://stackoverflow.com/questions/2...other-fragment, например, то необходимо также не добавлять фрагменты в стек:
Java
1
fTrans.addToBackStack(null);
Разместите после fTrans.replace(R.id.frgmCont, frag2_2);
_Dasha_
0 / 0 / 0
Регистрация: 19.12.2013
Сообщений: 42
08.03.2016, 13:31  [ТС]     Фрагменты: приложение вылетает при 4-ом нажатии на кнопку #8
Не помогло, к сожалению
CoolMind
418 / 401 / 65
Регистрация: 06.10.2012
Сообщений: 1,723
09.03.2016, 10:05     Фрагменты: приложение вылетает при 4-ом нажатии на кнопку #9
_Dasha_, ошибка та же?
А что вы грузите, помимо фрагментов? Какие-то изображения, карты? Что отнимает память?
_Dasha_
0 / 0 / 0
Регистрация: 19.12.2013
Сообщений: 42
10.03.2016, 06:27  [ТС]     Фрагменты: приложение вылетает при 4-ом нажатии на кнопку #10
да, наверное, всё дело в изображениях, избавиться от них я не могу, так как это формулы по физике. нужно качество уменьшить?
CoolMind
418 / 401 / 65
Регистрация: 06.10.2012
Сообщений: 1,723
10.03.2016, 09:28     Фрагменты: приложение вылетает при 4-ом нажатии на кнопку #11
_Dasha_, девушка, вам нужно либо поставить один из кэшей изображений (Fresco, Glide, UIL и др., а также самописные), либо изучить soft reference.
CoolMind
418 / 401 / 65
Регистрация: 06.10.2012
Сообщений: 1,723
12.03.2016, 10:06     Фрагменты: приложение вылетает при 4-ом нажатии на кнопку #12
Вот, кстати, известная ссылка с кучей библиотек: http://stackoverflow.com/questions/5...-listview?rq=1
Bend3r
148 / 135 / 18
Регистрация: 29.07.2012
Сообщений: 709
12.03.2016, 10:21     Фрагменты: приложение вылетает при 4-ом нажатии на кнопку #13
Цитата Сообщение от CoolMind Посмотреть сообщение
если почитать http://stackoverflow.com/questions/2...other-fragment, например, то необходимо также не добавлять фрагменты в стек:
Java(TM) 2 Platform Standard Edition 5.0Выделить код
1
fTrans.addToBackStack(null);
Разместите после fTrans.replace(R.id.frgmCont, frag2_2);
Как раз таки вы и добавляете этой строчкой фрагмент в stack.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.03.2016, 10:30     Фрагменты: приложение вылетает при 4-ом нажатии на кнопку
Еще ссылки по теме:

Приложение вылетает при старте на 4.1, на 4.4 - работает Android
Вылетает приложение при нажатии на кнопку Android
Android Вылетает приложение при запуске
Android Закрыть приложение при нажатии на кнопку
Android При изменении шрифта на собственный вылетает приложение

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

Или воспользуйтесь поиском по форуму:
CoolMind
418 / 401 / 65
Регистрация: 06.10.2012
Сообщений: 1,723
12.03.2016, 10:30     Фрагменты: приложение вылетает при 4-ом нажатии на кнопку #14
Bend3r, ага. Я ошибся.
Yandex
Объявления
12.03.2016, 10:30     Фрагменты: приложение вылетает при 4-ом нажатии на кнопку
Ответ Создать тему
Опции темы

Текущее время: 02:44. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru