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

Вылетает при прокрутке - Android

Войти
Регистрация
Восстановить пароль
 
Shamsik
 Аватар для Shamsik
-42 / 17 / 5
Регистрация: 23.12.2013
Сообщений: 521
Записей в блоге: 1
Завершенные тесты: 2
06.07.2016, 10:54     Вылетает при прокрутке #1
Доброе утро. Тут небольшая проблема возникла.

У меня в ListView формируется список категорий, их порядка 1000 а может и больше, подгружаются они с сервера там все предусмотрено (LIMIT, OFFSET).

В приложение все нормально формируется, но когда листаешь, несколько раз пролистал он и вылетает приложение без ошибок.

В чем может быть проблема.


//Занимается формированием прокрутки
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
        item.addOnScrollListener(new RecyclerView.OnScrollListener()
        {
            @Override
            public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
                super.onScrolled(recyclerView, dx, dy);
 
                visibleItemCount = recyclerView.getChildCount();
                totalItemCount = layoutManager.getItemCount();
                firstVisibleItem = layoutManager.findFirstVisibleItemPosition();
 
                if (loading) {
                    if (totalItemCount > previousTotal) {
                        loading = false;
                        previousTotal = totalItemCount;
                        currentPage++;
                    }
                }
                if (!loading && (totalItemCount - visibleItemCount)
                        <= (firstVisibleItem + visibleThreshold)) {
                    // End has been reached
 
                    new Loading().execute(String.valueOf(item_id));
 
                    loading = true;
                }
            }
 
 
        });

//AsyncTasc
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
    public class Loading extends AsyncTask<String,String,String>
    {
 
        @Override
        protected String doInBackground(String... params)
        {
            HttpUrl.Builder urlBuilder = HttpUrl.parse("url").newBuilder();
            urlBuilder.addQueryParameter("item_id",params[0]);
            urlBuilder.addQueryParameter("offset", Integer.toString(10 * currentPage));
            String url = urlBuilder.build().toString();
            Request request = new Request.Builder().url(url).build();
            Response response = null;
 
            try
            {
                response = client.newCall(request).execute();
 
                String jsonData = response.body().string();
                JSONObject Jobject = new JSONObject(jsonData);
 
                if (Jobject != null)
                {
                    listJSON = Jobject.getJSONArray("list");
 
                    for (int i = 0; i < listJSON.length(); i++)
                    {
                        JSONObject catalog = listJSON.getJSONObject(i);
                        ListModel list = new ListModel();
                        
                        list.setNewsTitle(catalog.getString("name"));
 
                        ItemList.add(list);
                    }
                }
 
            } catch (IOException e) {
                e.printStackTrace();
            } catch (JSONException e) {
                e.printStackTrace();
            }
 
            return null;
        }
 
        protected void onPostExecute(final String file_url)
        {
            getActivity().runOnUiThread(new Runnable() {
                public void run()
                {
                    adapter.notifyDataSetChanged();
 
                }
            });
        }
    }
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.07.2016, 10:54     Вылетает при прокрутке
Посмотрите здесь:

Сохранить измененные значения EditText в ListView при прокрутке Android
При повороте на 90 градусов вылетает программа Android
Белый фон при прокрутке listview и actionbar в android 2.1 Android
Android Ошибка при прокрутке списка
Android При прокрутке listview изображения подгружаются, но происходит "скачок" списка
Android SmsManager вылетает при отправке СМС
Как сделать границы в пространстве ImageView при прокрутке изображения Android
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Паблито
резкий
1890 / 1624 / 504
Регистрация: 12.05.2014
Сообщений: 5,849
Завершенные тесты: 1
06.07.2016, 10:55     Вылетает при прокрутке #2
Цитата Сообщение от Shamsik Посмотреть сообщение
вылетает приложение без ошибок
так не бывает
Shamsik
 Аватар для Shamsik
-42 / 17 / 5
Регистрация: 23.12.2013
Сообщений: 521
Записей в блоге: 1
Завершенные тесты: 2
06.07.2016, 11:04  [ТС]     Вылетает при прокрутке #3
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
07-06 11:02:55.397 13100-13111/com.project.one I/art: Background sticky concurrent mark sweep GC freed 20730(2MB) AllocSpace objects, 146(7MB) LOS objects, 22% free, 36MB/46MB, paused 8.842ms total 38.872ms
07-06 11:02:55.433 13100-13248/com.project.one W/Bitmap: Called getConfig() on a recycle()'d bitmap! This is undefined behavior!
07-06 11:02:55.487 13100-13246/com.project.one W/Bitmap: Called getConfig() on a recycle()'d bitmap! This is undefined behavior!
07-06 11:02:55.526 13100-13245/com.project.one W/Bitmap: Called getConfig() on a recycle()'d bitmap! This is undefined behavior!
07-06 11:02:55.564 13100-13256/com.project.one W/Bitmap: Called getConfig() on a recycle()'d bitmap! This is undefined behavior!
07-06 11:02:55.601 13100-13248/com.project.one W/Bitmap: Called getConfig() on a recycle()'d bitmap! This is undefined behavior!
07-06 11:02:55.643 13100-13246/com.project.one W/Bitmap: Called getConfig() on a recycle()'d bitmap! This is undefined behavior!
07-06 11:02:55.684 13100-13245/com.project.one W/Bitmap: Called getConfig() on a recycle()'d bitmap! This is undefined behavior!
07-06 11:02:55.859 13100-13256/com.project.one W/Bitmap: Called getConfig() on a recycle()'d bitmap! This is undefined behavior!
07-06 11:02:55.931 13100-13248/com.project.one W/Bitmap: Called getConfig() on a recycle()'d bitmap! This is undefined behavior!
07-06 11:02:55.982 13100-13246/com.project.one W/Bitmap: Called getConfig() on a recycle()'d bitmap! This is undefined behavior!
07-06 11:02:55.991 13100-13245/com.project.one W/Bitmap: Called getConfig() on a recycle()'d bitmap! This is undefined behavior!
07-06 11:02:56.023 13100-13256/com.project.one W/Bitmap: Called getConfig() on a recycle()'d bitmap! This is undefined behavior!
07-06 11:02:56.042 13100-13248/com.project.one W/Bitmap: Called getConfig() on a recycle()'d bitmap! This is undefined behavior!
07-06 11:02:56.079 13100-13246/com.project.one W/Bitmap: Called getConfig() on a recycle()'d bitmap! This is undefined behavior!
07-06 11:02:56.097 13100-13245/com.project.one W/Bitmap: Called getConfig() on a recycle()'d bitmap! This is undefined behavior!
07-06 11:02:56.112 13100-13256/com.project.one W/Bitmap: Called getConfig() on a recycle()'d bitmap! This is undefined behavior!
07-06 11:02:56.133 13100-13248/com.project.one W/Bitmap: Called getConfig() on a recycle()'d bitmap! This is undefined behavior!
07-06 11:02:56.289 13100-13105/com.project.one E/art: Unexpected time out during dump checkpoint.
07-06 11:02:56.289 13100-13105/com.project.one A/art: art/runtime/barrier.cc:90] Check failed: count_ == 0 (count_=-1, 0=0) Attempted to destroy barrier with non zero count
07-06 11:02:56.289 13100-13105/com.project.one A/art: art/runtime/runtime.cc:366] Runtime aborting --- recursively, so no thread-specific detail!
07-06 11:02:56.289 13100-13105/com.project.one A/art: art/runtime/runtime.cc:366] 
                                                                     
                                                                     --------- beginning of crash
07-06 11:02:56.469 13100-13105/com.project.one W/google-breakpad: ### ### ### ### ### ### ### ### ### ### ### ### ###
07-06 11:02:56.469 13100-13105/com.project.one W/google-breakpad: Chrome build fingerprint:
07-06 11:02:56.469 13100-13105/com.project.one W/google-breakpad: 1.0
07-06 11:02:56.469 13100-13105/com.project.one W/google-breakpad: 1
07-06 11:02:56.469 13100-13105/com.project.one W/google-breakpad: 7d26c012-4f20-450a-b207-c04dc7980276
07-06 11:02:56.469 13100-13105/com.project.one W/google-breakpad: ### ### ### ### ### ### ### ### ### ### ### ### ###
07-06 11:02:56.469 13100-13105/com.project.one A/libc: Fatal signal 6 (SIGABRT), code -6 in tid 13105 (Jit thread pool)
Добавлено через 22 секунды
Паблито, Вот внизу скинул лог
Паблито
резкий
1890 / 1624 / 504
Регистрация: 12.05.2014
Сообщений: 5,849
Завершенные тесты: 1
06.07.2016, 11:05     Вылетает при прокрутке #4
я уверен - это не весь лог и не в момент вылета
Shamsik
 Аватар для Shamsik
-42 / 17 / 5
Регистрация: 23.12.2013
Сообщений: 521
Записей в блоге: 1
Завершенные тесты: 2
06.07.2016, 11:08  [ТС]     Вылетает при прокрутке #5
Вот прикрепил файлом лог.

new 4.zip
Паблито
резкий
1890 / 1624 / 504
Регистрация: 12.05.2014
Сообщений: 5,849
Завершенные тесты: 1
06.07.2016, 11:12     Вылетает при прокрутке #6
я бы использовал RecyclerView вместо ListView
Shamsik
 Аватар для Shamsik
-42 / 17 / 5
Регистрация: 23.12.2013
Сообщений: 521
Записей в блоге: 1
Завершенные тесты: 2
06.07.2016, 11:14  [ТС]     Вылетает при прокрутке #7
Я его и использую

XML
1
2
3
4
5
6
7
    <android.support.v7.widget.RecyclerView
        android:id="@+id/list"
        app:layout_behavior="@string/appbar_scrolling_view_behavior"
        android:background="@color/divider_grey"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:scrollbars="vertical" />
Паблито
резкий
1890 / 1624 / 504
Регистрация: 12.05.2014
Сообщений: 5,849
Завершенные тесты: 1
06.07.2016, 11:17     Вылетает при прокрутке #8
Цитата Сообщение от Shamsik Посмотреть сообщение
У меня в ListView
Цитата Сообщение от Shamsik Посмотреть сообщение
Я его и использую
а где весь код адаптера?
Shamsik
 Аватар для Shamsik
-42 / 17 / 5
Регистрация: 23.12.2013
Сообщений: 521
Записей в блоге: 1
Завершенные тесты: 2
06.07.2016, 11:20  [ТС]     Вылетает при прокрутке #9
//Adapter
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
public class ListAdapter extends RecyclerView.Adapter<NListView>
{
    private List<ListModel> feedItemList;
    private Context mContext;
 
    public ListAdapter (Context mContext, List<ListModel> feedItemList)
    {
        this.feedItemList = feedItemList;
        this.mContext = mContext;
    }
 
    @Override
    public NListView onCreateViewHolder(ViewGroup parent, int viewType)
    {
        View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.custom_list, null);
        NListView viewHolder = new NListView(view);
 
        return viewHolder;
    }
 
    @Override
    public void onBindViewHolder(NListView holder, int position)
    {
        ListModel feedItem = feedItemList.get(position);
 
        holder.textName.setText(feedItem.getTitle());
    }
 
    @Override
    public int getItemCount()
    {
        return (null != feedItemList ? feedItemList.size() : 0);
    }
}
//ViewHolder
Java
1
2
3
4
5
6
7
8
9
10
public class NListView extends RecyclerView.ViewHolder
{
    public  TextView textName ;
    public NListView (View view)
    {
        super(view);
 
        this.textName = (TextView) view.findViewById(R.id.title);
    }
}
Паблито
резкий
1890 / 1624 / 504
Регистрация: 12.05.2014
Сообщений: 5,849
Завершенные тесты: 1
06.07.2016, 11:25     Вылетает при прокрутке #10
1. холдер должен быть статическим классом внутри адаптера!

2. ItemList - откуда Loader знает про этот лист?

надо клещами вытягивать весь код потому что ТЫ решаешь что важно и что стоит показать чувакам с форума, а что не стоит показывать так как ты уверен что это не важно и они там сами разберутся?
Shamsik
 Аватар для Shamsik
-42 / 17 / 5
Регистрация: 23.12.2013
Сообщений: 521
Записей в блоге: 1
Завершенные тесты: 2
06.07.2016, 11:32  [ТС]     Вылетает при прокрутке #11
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
//Main
private List<ListModel> ItemList = new ArrayList<ListModel>();
 
//ListModel.java
public class ListModel
{
    private String title;
 
 
    public ListModel(String title)
    {
        this.title     =   title;
    }
 
    public String getTitle()
    {
        return news_title;
    }
 
    public void setTitle(String title)
    {
        this.title = title;
    }
 
}
Добавлено через 1 минуту
Java
1
2
3
4
5
6
7
8
//Main
private ListAdapter adapter;
 
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
      
          adapter = new ListAdapter(getActivity(), ItemList);
    }
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.07.2016, 11:37     Вылетает при прокрутке
Еще ссылки по теме:

Android Программа вылетает при прокрутке ListActivity
Вылетает приложение при нажатии на кнопку Android
Вылетает при создании потока Android
Android Вылетает приложение при запуске
Android Программа вылетает при запуске. OutOfMemryError

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

Или воспользуйтесь поиском по форуму:
Паблито
резкий
1890 / 1624 / 504
Регистрация: 12.05.2014
Сообщений: 5,849
Завершенные тесты: 1
06.07.2016, 11:37     Вылетает при прокрутке #12
холдер надо сделать статическим внутри адаптера - с этого надо начать
все равно куски кода...какой же тяжелый случай...все, передаю тему толерантным людят
Yandex
Объявления
06.07.2016, 11:37     Вылетает при прокрутке
Ответ Создать тему
Опции темы

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