Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Shamsik
-42 / 17 / 15
Регистрация: 23.12.2013
Сообщений: 521
Записей в блоге: 1
Завершенные тесты: 2
#1

Вылетает при прокрутке - Программирование Android

06.07.2016, 10:54. Просмотров 389. Ответов 11
Метки нет (Все метки)

Доброе утро. Тут небольшая проблема возникла.

У меня в 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();
 
                }
            });
        }
    }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.07.2016, 10:54
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Вылетает при прокрутке (Программирование Android):

Программа вылетает при прокрутке ListActivity
Здравствуйте, уважаемые программисты! Не могли бы вы мне помочь? Моя...

Ошибка при прокрутке списка
Создается список нормально, вниз прокручивается ,а когда обратно скролить вверх...

Вызов метода при прокрутке activity
Как обработать событие когда activity прокрутили в самый низ что бы вызвать...

Нескролящийся View при прокрутке ScrollView
Здравствуйте. Есть задача сделать View, который при скролинге не уходил, а...

Белый фон при прокрутке listview и actionbar в android 2.1
При прокрутке ListView на Android 2.3 появляется белый фон. Ставил Cache Color...

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

11
Pablito
2652 / 2134 / 726
Регистрация: 12.05.2014
Сообщений: 7,450
Завершенные тесты: 1
06.07.2016, 10:55 #2
Цитата Сообщение от Shamsik Посмотреть сообщение
вылетает приложение без ошибок
так не бывает
0
Shamsik
-42 / 17 / 15
Регистрация: 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 секунды
Паблито, Вот внизу скинул лог
0
Pablito
2652 / 2134 / 726
Регистрация: 12.05.2014
Сообщений: 7,450
Завершенные тесты: 1
06.07.2016, 11:05 #4
я уверен - это не весь лог и не в момент вылета
0
Shamsik
-42 / 17 / 15
Регистрация: 23.12.2013
Сообщений: 521
Записей в блоге: 1
Завершенные тесты: 2
06.07.2016, 11:08  [ТС] #5
Вот прикрепил файлом лог.

new 4.zip
0
Pablito
2652 / 2134 / 726
Регистрация: 12.05.2014
Сообщений: 7,450
Завершенные тесты: 1
06.07.2016, 11:12 #6
я бы использовал RecyclerView вместо ListView
0
Shamsik
-42 / 17 / 15
Регистрация: 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" />
0
Pablito
2652 / 2134 / 726
Регистрация: 12.05.2014
Сообщений: 7,450
Завершенные тесты: 1
06.07.2016, 11:17 #8
Цитата Сообщение от Shamsik Посмотреть сообщение
У меня в ListView
Цитата Сообщение от Shamsik Посмотреть сообщение
Я его и использую
а где весь код адаптера?
0
Shamsik
-42 / 17 / 15
Регистрация: 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);
    }
}
0
Pablito
2652 / 2134 / 726
Регистрация: 12.05.2014
Сообщений: 7,450
Завершенные тесты: 1
06.07.2016, 11:25 #10
1. холдер должен быть статическим классом внутри адаптера!

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

надо клещами вытягивать весь код потому что ТЫ решаешь что важно и что стоит показать чувакам с форума, а что не стоит показывать так как ты уверен что это не важно и они там сами разберутся?
0
Shamsik
-42 / 17 / 15
Регистрация: 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);
    }
0
Pablito
2652 / 2134 / 726
Регистрация: 12.05.2014
Сообщений: 7,450
Завершенные тесты: 1
06.07.2016, 11:37 #12
холдер надо сделать статическим внутри адаптера - с этого надо начать
все равно куски кода...какой же тяжелый случай...все, передаю тему толерантным людят
0
06.07.2016, 11:37
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.07.2016, 11:37
Привет! Вот еще темы с решениями:

Как сделать границы в пространстве ImageView при прокрутке изображения
Как сделать границы в пространстве ImageView при прокрутке большого изображения...

При прокрутке listview изображения подгружаются, но происходит "скачок" списка
Здравствуйте. Использую listview и item с текстом и изображениями. При...

Вылетает при запуске
Накидал код в Android Studio. Вот кусок: public class MainActivity extends...

Jsoup. Вылетает при connect
Не понимаю в чем проблема, побывал и без переменной query, все равно не...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru