Досадный просмотр вторсырья: Нет адаптера; пропуск макета

#android #android-studio #android-recyclerview

Вопрос:

Эта проблема была опубликована несколько раз. Но Android Studio иногда бывает настолько раздражающе глупой, что внезапно что-то перестает работать.

У меня есть 2 версии с ТОЧНО ТАКИМ ЖЕ КОДОМ, а другая версия перестала работать и показывает E/RecyclerView: No adapter attached; skipping layout

очищенный. ВОССТАНОВЛЕННЫЙ ПРОЕКТ. АННУЛИРОВАТЬ КЭШ.

Нужна помощь с предложениями. Так неприятно.

 if (allLeadsList.isEmpty()) {  leadsEmptyLayout.setVisibility(View.VISIBLE);  swipeRefreshLayout.setVisibility(View.GONE);  searchListLoading.setVisibility(View.GONE);  } else {  LinearLayoutManager layoutManager = new LinearLayoutManager(getApplicationContext(), LinearLayoutManager.VERTICAL, false);  recyclerView.setLayoutManager(layoutManager);   leadsListAdapter = new LeadsListAdapter(getApplicationContext(), adapterOnclick, allLeadsList);  recyclerView.setAdapter(leadsListAdapter);   final LayoutAnimationController controller =  AnimationUtils.loadLayoutAnimation(LeadHomeActivity.this, R.anim.layout_animation_down_to_up);    nestedScrollView.setOnScrollChangeListener(new NestedScrollView.OnScrollChangeListener() {  @Override  public void onScrollChange(NestedScrollView v, int scrollX, int scrollY, int oldScrollX, int oldScrollY) {  if (scrollY == v.getChildAt(0).getMeasuredHeight() - v.getMeasuredHeight()) {  Constants.currentPage  ;  generateNextList(Constants.currentPage);  }  }  });   recyclerView.setLayoutAnimation(controller);  leadsListAdapter.notifyDataSetChanged();  recyclerView.scheduleLayoutAnimation();  

Комментарии:

1. Как именно вы изолировали это от проблемы Android Studio? Есть ли у вас тесты, чтобы проверить правильность вашего кода?

2. Я сказал 2 проекта с ТОЧНО ТАКИМ ЖЕ КОДОМ. Единственное различие между 2 — мя-это значок приложения. Все они работали. Затем внезапно, после нескольких дней отдыха, эта глупая студия Android показала ошибку в другой версии. Другой отлично работал с автофокусом.

3. Таким образом, оба приложения имеют одинаковое пространство имен и идентификатор приложения, если это ТОЧНО ОДИН и ТОТ ЖЕ КОД? Ошибка является несмертельным сообщением журнала, только это указывает на то, что ваш список пуст.

4. Однако в журнале отображается ответ. проверяю также почтальона.

5. Значит, список заполняется асинхронно? Мутирует ли он в разных потоках? При оценке он пуст, а затем заполняется позже .. что может означать, что в зависимости от задержки иногда это может сработать, в то время как в другое время этого не произойдет, особенно если сетевой ответ кэшируется? Вам необходимо предоставить полную логику заполнения списка. Просто инициализируйте представление переработчика и адаптер пустым списком, а затем обновите список, когда ваш сетевой ответ вернется. Похоже, у вас проблемы с логикой.