title: i got E/RecyclerView: No adapter attached; skipping layout what is my error?
body: <p>I got the error <code>E/RecyclerView: No adapter attached; skipping layout</code> but I don't know what is the cause, because I just recently studying this fragment.</p>
  
  <p>I already searched about this and follow the steps but I still got the the error.</p>
  
  <p>This is my Adapter:</p>
  
  <pre><code>public class BlogRecyclerAdapter extends RecyclerView.Adapter&lt;BlogRecyclerAdapter.ViewHolder&gt;  {
  
      public List&lt;BlogPost&gt; blog_list;
      public List&lt;User&gt; user_list;
      public Context context;
      private FirebaseFirestore firebaseFirestore;
      private FirebaseAuth firebaseAuth;
  
      public BlogRecyclerAdapter(List&lt;BlogPost&gt; blog_list,List&lt;User&gt; user_list){
          this.blog_list = blog_list;
          this.user_list = user_list;    
      }
  
      @NonNull
      @Override
      public BlogRecyclerAdapter.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
          View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.single_list_view, parent, false);
          context = parent.getContext();
          firebaseFirestore = FirebaseFirestore.getInstance();
          firebaseAuth = FirebaseAuth.getInstance();
          return new ViewHolder(view);
      }
  
      @Override
      public void onBindViewHolder(@NonNull final ViewHolder holder, final int position) {
          holder.setIsRecyclable(false);
  
          final String blogPostId = blog_list.get(position).BlogPostId;
          final String currentUserId = firebaseAuth.getCurrentUser().getUid();
  
          String desc_data = blog_list.get(position).getDesc();
          holder.setDescText(desc_data);
  
          String image_url = blog_list.get(position).getImage_url();
          String thumbUri = blog_list.get(position).getThumbnail();
          holder.setBlogImage(image_url, thumbUri);
  
          String blog_user_id = blog_list.get(position).getUser_id();
          holder.blogDeletebtn.setEnabled(true);
          holder.blogDeletebtn.setVisibility(View.VISIBLE);
  
          firebaseFirestore.collection("Users").document(blog_user_id).get().addOnCompleteListener(new OnCompleteListener&lt;DocumentSnapshot&gt;() {
              @Override
              public void onComplete(@NonNull Task&lt;DocumentSnapshot&gt; task) {
                  if(task.isSuccessful()){
                      String userName = task.getResult().getString("name");
                      String userImage = task.getResult().getString("image");
  
                      holder.setUserData(userName, userImage);
                  }
                  else{
                      //error
                  }
              }
          });
  
          try {
              long millisecond = blog_list.get(position).getTimestamp().getTime();
              String dateString = DateFormat.format("MM/dd/yyyy", new Date(millisecond)).toString();
              holder.setTime(dateString);
          } catch (Exception e) {
              Toast.makeText(context, "Exception : " + e.getMessage(), Toast.LENGTH_SHORT).show();
          }
  
          //new query para sa counter ng like
          firebaseFirestore.collection("Posts")
                  .document(blogPostId)
                  .collection("Likes").addSnapshotListener(new EventListener&lt;QuerySnapshot&gt;() {
              @Override
              public void onEvent(@Nullable QuerySnapshot queryDocumentSnapshots, @Nullable FirebaseFirestoreException e) {
                  if(!queryDocumentSnapshots.isEmpty()){    
                      int count = queryDocumentSnapshots.size();
                      holder.updatesLikeCount(count);
                  }
                  else
                  {
                      holder.updatesLikeCount(0);
                  }
              }
          });
  
          //new query sa likes
  
          firebaseFirestore.collection("Posts")
                  .document(blogPostId)
                  .collection("Likes")
                  .document(currentUserId).addSnapshotListener(new EventListener&lt;DocumentSnapshot&gt;() {
              @Override
              public void onEvent(@Nullable DocumentSnapshot documentSnapshot, @Nullable FirebaseFirestoreException e) {
                  if(documentSnapshot.exists()){
                      holder.blogLikebtn.setImageDrawable(context.getDrawable(R.mipmap.action_like_accent));
                  }
                  else
                      {
                          holder.blogLikebtn.setImageDrawable(context.getDrawable(R.mipmap.action_like_gray));
                  }
              }
          });
  
          //dito gagana yung likes
  
          holder.blogLikebtn.setOnClickListener(new View.OnClickListener() {
              @Override
              public void onClick(View v) {
  
                  firebaseFirestore.collection("Posts")
                          .document(blogPostId)
                          .collection("Likes")
                          .document(currentUserId).get().addOnCompleteListener(new OnCompleteListener&lt;DocumentSnapshot&gt;() {
                      @Override
                      public void onComplete(@NonNull Task&lt;DocumentSnapshot&gt; task) {
                          if(!task.getResult().exists()){
                              Map&lt;String, Object&gt; likesMap = new HashMap&lt;&gt;();
                              likesMap.put("timestamp", FieldValue.serverTimestamp());
  
                              firebaseFirestore.collection("Posts")
                                      .document(blogPostId)
                                      .collection("Likes")
                                      .document(currentUserId)
                                      .set(likesMap);
                          }
                          else{
                              firebaseFirestore.collection("Posts")
                                      .document(blogPostId)
                                      .collection("Likes")
                                      .document(currentUserId)
                                      .delete();
                          }
                      }
                  });
              }
          });
  
          holder.blogCommentBtn.setOnClickListener(new View.OnClickListener() {
              @Override
              public void onClick(View v) {
                  Intent commentIntent = new Intent(context, CommentsActivity.class);
                  commentIntent.putExtra("blog_post_id", blogPostId);
                  context.startActivity(commentIntent);
              }
          });
  
          holder.blogDeletebtn.setOnClickListener(new View.OnClickListener() {
              @Override
              public void onClick(View v) {
  
                  firebaseFirestore.collection("Posts").document(blogPostId).delete().addOnSuccessListener(new OnSuccessListener&lt;Void&gt;() {
                      @Override
                      public void onSuccess(Void aVoid) {
                          blog_list.remove(position);
                          user_list.remove(position);
                      }
                  });
  
              }
          });
  
  
      }
  
      @Override
      public int getItemCount() {
  
          return blog_list.size();
      }
  
      public class ViewHolder extends RecyclerView.ViewHolder {
  
          private View mView;
  
          private TextView descView,blogDate,blogUserName,blogLikeCount;
          private ImageView blogImageView,blogLikebtn,blogCommentBtn;
          private CircleImageView blogUserImage;
          private Button blogDeletebtn;
  
  
          public ViewHolder(View itemView) {
              super(itemView);
              mView = itemView;
  
              blogLikebtn = mView.findViewById(R.id.blog_like_btn);
              blogCommentBtn = mView.findViewById(R.id.blog_comment_btn);
              blogDeletebtn = mView.findViewById(R.id.blog_delete_btn);
          }
          private void setDescText(String descText){
  
              descView = mView.findViewById(R.id.blog_desc);
              descView.setText(descText);
          }
  
          private void setBlogImage(String downloadUri, String thumbUri){
  
              blogImageView = mView.findViewById(R.id.blog_image);
              RequestOptions requestOptions = new RequestOptions();
              requestOptions.placeholder(R.drawable.header1);
              Glide.with(context).applyDefaultRequestOptions(requestOptions).load(downloadUri).thumbnail
                      (Glide.with(context).load(thumbUri)).into(blogImageView);
  
  
          }
  
          private void setTime(String date){
  
              blogDate = mView.findViewById(R.id.blog_date);
              blogDate.setText(date);
  
  
          }
  
          private void setUserData(String name, String image){
  
              blogUserImage = mView.findViewById(R.id.blog_user_image);
              blogUserName = mView.findViewById(R.id.blog_username);
  
              blogUserName.setText(name);
  
              RequestOptions placeholderOptions = new RequestOptions();
              placeholderOptions.placeholder(R.drawable.messenger_button_send_round_shadow);
  
              Glide.with(context).applyDefaultRequestOptions(placeholderOptions).load(image).into(blogUserImage);
  
          }
  
          public void updatesLikeCount(int count){
  
              blogLikeCount = mView.findViewById(R.id.blog_like_count);
              blogLikeCount.setText(count + "Likes");
  
          }
  
      }
  }
  </code></pre>
  
  <p>This is my Fragment:</p>
  
  <pre><code>public class HomeFragment extends Fragment {
  
      private RecyclerView blog_list_view;
      private List&lt;BlogPost&gt; blog_list;
      private List&lt;User&gt; user_list;
      private FirebaseFirestore firebaseFirestore;
      private FirebaseAuth firebaseAuth;
      private BlogRecyclerAdapter blogRecyclerAdapter;
      private DocumentSnapshot lastVisible;
      private boolean isFirstPageFirstLoad = true;
  
  
  
      public HomeFragment() {
          // Required empty public constructor
      }
  
  
      @Override
      public View onCreateView(LayoutInflater inflater, final ViewGroup container,
                               Bundle savedInstanceState) {
  
          View view = inflater.inflate(R.layout.fragment_home, container, false);
  
          blog_list = new ArrayList&lt;&gt;();
          user_list = new ArrayList&lt;&gt;();
          blog_list_view = view.findViewById(R.id.blog_list_view);
  
          firebaseAuth = FirebaseAuth.getInstance();
  
          blogRecyclerAdapter = new BlogRecyclerAdapter(blog_list, user_list);
          blog_list_view.setLayoutManager(new LinearLayoutManager(container.getContext()));
          blog_list_view.setAdapter(blogRecyclerAdapter);
          blog_list_view.setHasFixedSize(true);
  
          if (firebaseAuth.getCurrentUser() != null) {
  
              firebaseFirestore = FirebaseFirestore.getInstance();
  
              blog_list_view.addOnScrollListener(new RecyclerView.OnScrollListener() {
                  @Override
                  public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) {
                      super.onScrolled(recyclerView, dx, dy);
  
                      Boolean reachBottom = !recyclerView.canScrollVertically(1);
  
                      if (reachBottom) {
  
                          loadMorePost();
  
                      }
                  }
              });
  
              Query firstQuery = firebaseFirestore.collection("Posts")
                      .orderBy("timestamp", Query.Direction.DESCENDING)
                      .limit(10);
  
              firstQuery.addSnapshotListener(getActivity(), new EventListener&lt;QuerySnapshot&gt;() {
                  @Override
                  public void onEvent(@Nullable QuerySnapshot queryDocumentSnapshots, @Nullable FirebaseFirestoreException e) {
  
                      if (!queryDocumentSnapshots.isEmpty()) {
  
                          if (isFirstPageFirstLoad) {
                              lastVisible = queryDocumentSnapshots.getDocuments()
                                      .get(queryDocumentSnapshots.size() - 1);
                              blog_list.clear();
                              user_list.clear();
                          }
  
                          for (DocumentChange doc : queryDocumentSnapshots.getDocumentChanges()) {
  
                              if (doc.getType() == DocumentChange.Type.ADDED) {
  
                                  String blogPostId = doc.getDocument().getId();
                                  final BlogPost blogPost = doc.getDocument().toObject(BlogPost.class).withId(blogPostId);
  
                                  String blogUserId = doc.getDocument().getString("user_id");
                                  firebaseFirestore.collection("Users").document(blogUserId).get().addOnCompleteListener(new OnCompleteListener&lt;DocumentSnapshot&gt;() {
                                      @Override
                                      public void onComplete(@NonNull Task&lt;DocumentSnapshot&gt; task) {
  
                                          if (task.isSuccessful()) {
  
                                              User user = task.getResult().toObject(User.class);
                                              user_list.add(user);
  
  
                                              if (isFirstPageFirstLoad) {
                                                  user_list.add(user);
                                                  blog_list.add(blogPost);
                                              } else {
                                                  user_list.add(0, user);
                                                  blog_list.add(0, blogPost);
                                              }
                                              blogRecyclerAdapter.notifyDataSetChanged();
                                          }
  
                                      }
                                  });
  
                              }
                              isFirstPageFirstLoad = false;
                          }
  
                      }
  
                  }
              });
  
          }
  
          // Inflate the layout for this fragment
          return view;
      }
      private void loadMorePost(){
  
          Query nextQuery = firebaseFirestore.collection("Posts")
                  .orderBy("timestamp", Query.Direction.DESCENDING)
                  .startAfter(lastVisible)
                  .limit(10);
  
          nextQuery.addSnapshotListener(getActivity(), new EventListener&lt;QuerySnapshot&gt;() {
              @Override
              public void onEvent(@Nullable QuerySnapshot queryDocumentSnapshots, @Nullable FirebaseFirestoreException e) {
                  if(!queryDocumentSnapshots.isEmpty()) {
  
                      lastVisible = queryDocumentSnapshots.getDocuments()
                              .get(queryDocumentSnapshots.size() - 1);
  
                      for (DocumentChange doc : queryDocumentSnapshots.getDocumentChanges()) {
                          if (doc.getType() == DocumentChange.Type.ADDED) {
  
                              String blogPostId = doc.getDocument().getId();
                              final BlogPost blogPost = doc.getDocument().toObject(BlogPost.class).withId(blogPostId);
                              String blogUserId = doc.getDocument().getString("user_id");
                              firebaseFirestore.collection("Users").document(blogUserId).get().addOnCompleteListener(new OnCompleteListener&lt;DocumentSnapshot&gt;() {
                                  @Override
                                  public void onComplete(@NonNull Task&lt;DocumentSnapshot&gt; task) {
  
                                      if(task.isSuccessful()){
  
                                          User user = task.getResult().toObject(User.class);
                                          user_list.add(user);
  
                                              user_list.add(user);
                                              blog_list.add(blogPost);
  
                                          blogRecyclerAdapter.notifyDataSetChanged();
                                      }
  
                                  }
                              });
                          }
                      }
                  }
  
              }
          });
  
  
      }
  
  }
  </code></pre>
  
  <p>This is my Activity:</p>
  
  <pre><code>public class Feed extends AppCompatActivity {
  
      private Toolbar mainToolbar;
      FirebaseAuth firebaseAuth;
      private FloatingActionButton addPostbtn;
      private FirebaseFirestore firebaseFirestore;
      private String current_user_id;
      private BottomNavigationView feedbottomNav;
      private HomeFragment homeFragment;
      private NotificationFragment notificationFragment;
      private AccountFragment accountFragment;
  
  
      @Override
      protected void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.activity_feed);
  
          FirebaseApp.initializeApp(this);
  
  
          firebaseAuth = FirebaseAuth.getInstance();
          firebaseFirestore = FirebaseFirestore.getInstance();
  
          mainToolbar = findViewById(R.id.main_toolbar);
          setSupportActionBar(mainToolbar);
          getSupportActionBar().setTitle("Feed");
          if(firebaseAuth != null) {
  
              feedbottomNav = findViewById(R.id.feedBottomNav);
  
              //FRAGMENTS KO
              homeFragment = new HomeFragment();
              notificationFragment = new NotificationFragment();
              accountFragment = new AccountFragment();
  
              initializeFragment();
  
  
              feedbottomNav.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() {
                  @Override
                  public boolean onNavigationItemSelected(@NonNull MenuItem menuItem) {
  
  
                      Fragment currentFragment = getSupportFragmentManager().findFragmentById(R.id.feed_container);
  
                      switch (menuItem.getItemId()) {
                          case R.id.bottom_home_fragment:
                              replaceFragment(homeFragment, currentFragment);
                              return true;
  
                          case R.id.bottom_account_fragment:
                              replaceFragment(accountFragment, currentFragment);
                              return true;
  
                          case R.id.bottom_notification_fragment:
                              replaceFragment(notificationFragment, currentFragment);
                              return true;
  
                          default:
  
                              return false;
                      }
  
                  }
              });
  
  
              addPostbtn = findViewById(R.id.add_post_btn);
              addPostbtn.setOnClickListener(new View.OnClickListener() {
                  @Override
                  public void onClick(View v) {
                      startActivity(new Intent(Feed.this, NewPostActivity.class));
                      finish();
                  }
              });
          }
      }
  
      private void initializeFragment() {
          FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
  
          fragmentTransaction.add(R.id.feed_container, homeFragment);
          fragmentTransaction.add(R.id.feed_container, notificationFragment);
          fragmentTransaction.add(R.id.feed_container, accountFragment);
  
          fragmentTransaction.hide(notificationFragment);
          fragmentTransaction.hide(accountFragment);
  
          fragmentTransaction.commit();
      }
  
      @Override
      protected void onStart() {
          super.onStart();
  
  
          FirebaseUser currentUser = FirebaseAuth.getInstance().getCurrentUser();
          if (currentUser == null) {
              startActivity(new Intent(Feed.this, MainActivity.class));
              finish();
          } else {
  
              current_user_id = firebaseAuth.getCurrentUser().getUid();
  
              firebaseFirestore.collection("Users").document(current_user_id).get().addOnCompleteListener(new OnCompleteListener&lt;DocumentSnapshot&gt;() {
                  @Override
                  public void onComplete(@NonNull Task&lt;DocumentSnapshot&gt; task) {
                      if (task.isSuccessful()) {
  
                          if (!task.getResult().exists()) {
                              startActivity(new Intent(Feed.this, AccountSettings.class));
                              finish();
                          }
  
                      } else {
                          String errorMessage = task.getException().getMessage();
                          Toast.makeText(Feed.this, "Error: " + errorMessage, Toast.LENGTH_LONG).show();
                      }
                  }
              });
          }
      }
  
      @Override
      public boolean onCreateOptionsMenu(Menu menu) {
  
          getMenuInflater().inflate(R.menu.main_menu, menu);
          return true;
      }
  
      @Override
      public boolean onOptionsItemSelected(MenuItem item) {
  
          switch (item.getItemId()){
  
              case R.id.action_logout:
                  logOut();
                  return true;
  
              case R.id.action_settings_btn:
                  startActivity(new Intent(Feed.this, AccountSettings.class));
                  return true;
  
  
              default:
                  return false;
          }
  
      }
      private void logOut(){
          firebaseAuth.signOut();
          finish();
          startActivity(new Intent(Feed.this,MainActivity.class));
      }
      private void replaceFragment(Fragment fragment, Fragment currentFragment){
          //paglipat ng fragment
          FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
          if(fragment == homeFragment){
  
              fragmentTransaction.hide(accountFragment);
              fragmentTransaction.hide(notificationFragment);
  
          }
  
          if(fragment == accountFragment){
  
              fragmentTransaction.hide(homeFragment);
              fragmentTransaction.hide(notificationFragment);
  
          }
  
          if(fragment == notificationFragment){
  
              fragmentTransaction.hide(homeFragment);
              fragmentTransaction.hide(accountFragment);
  
          }
          fragmentTransaction.show(fragment);
  
          //fragmentTransaction.replace(R.id.main_container, fragment);
          fragmentTransaction.commit();
      }
  }
  </code></pre>
  
  <p>THIS IS MY FRAGMENT LAYOUT</p>
  
  <pre><code>&lt;androidx.recyclerview.widget.RecyclerView
      android:id="@+id/blog_list_view"
      android:layout_width="match_parent"
      android:layout_height="match_parent" /&gt;
  </code></pre>
  
  <p>THIS IS MY ACTIVITY LAYOUT</p>
  
  <pre><code>&lt;FrameLayout
      android:id="@+id/feed_container"
      android:layout_width="0dp"
      android:layout_height="0dp"
      app:layout_constraintBottom_toTopOf="@+id/feedBottomNav"
      app:layout_constraintEnd_toEndOf="parent"
      app:layout_constraintStart_toStartOf="parent"
      app:layout_constraintTop_toBottomOf="@+id/main_toolbar"&gt;
  
      &lt;androidx.recyclerview.widget.RecyclerView
          android:id="@+id/blog_list_view"
          android:layout_width="match_parent"
          android:layout_height="match_parent" /&gt;
  </code></pre>
  
  <p>When I post the data would be retrieved and shown to the recyclerview and the recycler view should be seen on the feed but i keep getting that error please help.</p>