RecyclerView Nenhum adaptador conectado; pulando layout, dados não exibidos

Estou criando um aplicativo de tocador de música no qual estou usando um carregador para carregar dados da música no adaptador, que será mostrado usando um RecyclerView. No entanto, estou recebendo esse erro estranho dos métodos do meu adaptador não funcionando. Somente o método construtor do adaptador está sendo chamado. Também estou recebendo "Nenhum adaptador conectado; ignorando o layout", apesar de passar por todas as soluções disponíveis aqui no estouro da pilha.

Alguns pontos a serem observados:

Eu tentei todas as soluções para "Nenhum adaptador conectado; pulando o layout" emrecyclerview Nenhum adaptador conectado; saltando layout thread e todos os threads duplicados associados.O RecyclerView que estou usando não é o regular, masFastScrollRecyclerView, mas como ele se estende do RecyclerView normal e não há problemas relacionados mencionados no github, estou convencido de que o uso desta biblioteca não é um problema aquiEu também tentei todas as soluções para os métodos do adaptador não serem chamados deesta discussão, mas sem sorte.

Aqui está o código:

SongsFragment.java

public class SongsFragment extends Fragment
    implements LoaderManager.LoaderCallbacks<List<Song>>{

public static final String LOG_TAG = SongsFragment.class.getSimpleName();
private static final int LOADER_ID = 1;
private ContentResolver mContentResolver;
private SongListAdapter mSongListAdapter;
private List<Song> mSongs;
@BindView(R.id.rvSongs) FastScrollRecyclerView mRecyclerView;

public SongsFragment() {}

@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    ButterKnife.bind(getActivity());
    mSongs = new ArrayList<>();
    mRecyclerView = new FastScrollRecyclerView(getContext());
    LinearLayoutManager layoutManager = new LinearLayoutManager(getActivity());
    layoutManager.setOrientation(LinearLayoutManager.VERTICAL);
    mRecyclerView.setLayoutManager(layoutManager);
    mRecyclerView.setHasFixedSize(true);
    mSongListAdapter = new SongListAdapter(getContext(), mSongs);
    mRecyclerView.setAdapter(mSongListAdapter);

}

@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);
    getLoaderManager().initLoader(LOADER_ID, null, this).forceLoad();
}

@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, Bundle savedInstanceState) {
    return inflater.inflate(R.layout.fragment_songs, container, false);
}

@Override
public Loader<List<Song>> onCreateLoader(int id, Bundle args) {
    mContentResolver = getActivity().getContentResolver();
    return new SongsLoader(getContext(), mContentResolver);
}

@Override
public void onLoadFinished(Loader<List<Song>> loader, List<Song> data) {
    mSongs = data;
    mSongListAdapter.setData(mSongs);
}

@Override
public void onLoaderReset(Loader<List<Song>> loader) {
    mSongListAdapter.setData(new ArrayList<Song>());
}

}

SongsListAdapter.java

public class SongListAdapter
  extends FastScrollRecyclerView.Adapter<SongListAdapter.SongItemViewHolder>
  implements FastScrollRecyclerView.SectionedAdapter{

public static final String LOG_TAG = SongListAdapter.class.getSimpleName();
private Context mContext;
private List<Song> mSongList = new ArrayList<>();

public SongListAdapter(Context context, List<Song> songList) {
    Log.d(LOG_TAG, "Constructor called");
    mContext = context;
    mSongList = songList;
}

@NonNull
@Override
public String getSectionName(int position) {
    return String.valueOf(mSongList.get(position).getTitle().charAt(0)).toUpperCase();
}

@Override
public SongItemViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    Log.d(LOG_TAG, "onCreateViewHolder called");
    View view = LayoutInflater.from(mContext).inflate(R.layout.list_item_song, null);
    return new SongItemViewHolder(view);
}

@Override
public void onBindViewHolder(SongItemViewHolder holder, int position) {
    Log.d(LOG_TAG, "onBindViewHolder called");
    Uri albumArtUri = mSongList.get(position).getAlbumArtUri();
    Glide.with(mContext)
            .load(albumArtUri)
            .into(holder.albumArt);
    holder.titleText.setText(mSongList.get(position).getTitle());
    holder.artistText.setText(mSongList.get(position).getArtistName());
    Log.d("Data", albumArtUri.toString() + "\n" + mSongList.get(position).getTitle() + "\n" + mSongList.get(position).getArtistName());
}

@Override
public int getItemCount() {
    Log.d(LOG_TAG, "getItemCount called");
    return (mSongList != null ? mSongList.size() : 0);
}

public void setData(List<Song> songs){
    mSongList = songs;
    notifyDataSetChanged();
}

public class SongItemViewHolder extends FastScrollRecyclerView.ViewHolder {
    ImageView albumArt;
    TextView titleText;
    TextView artistText;

    SongItemViewHolder(View view) {
        super(view);
        Log.d(LOG_TAG, "SongItemViewHolder called");
        albumArt = (ImageView) view.findViewById(R.id.item_song_image);
        titleText = (TextView) view.findViewById(R.id.item_song_title);
        artistText = (TextView) view.findViewById(R.id.item_song_artist_name);
    }
}

}

fragment_songs.xml (SongsFragment está inflando esse layout)

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
            xmlns:app="http://schemas.android.com/apk/res-auto"
            android:layout_width="match_parent"
            android:layout_height="match_parent">


    <com.simplecityapps.recyclerview_fastscroll.views.FastScrollRecyclerView
        android:id="@+id/rvSongs"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:fastScrollPopupBgColor="@color/colorAccent"
        app:fastScrollPopupTextColor="@android:color/primary_text_dark"
        app:fastScrollThumbColor="@color/colorAccent"/>

</ScrollView>

list_item_song.xml (item individual na exibição do reciclador)

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">

<View
    android:layout_width="match_parent"
    android:layout_height="1dp"
    android:layout_gravity="center_horizontal"
    android:layout_marginStart="12dp"
    android:layout_marginLeft="12dp"
    android:layout_marginRight="12dp"
    android:background="#FFFFFF"/>

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:paddingBottom="10dp"
    android:paddingLeft="8dp"
    android:paddingRight="8dp"
    android:paddingStart="8dp"
    android:paddingTop="10dp">

    <FrameLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">

        <ImageView
            android:id="@+id/item_song_image"
            android:layout_width="64dp"
            android:src="@drawable/music_placeholder"
            android:layout_height="64dp"/>

    </FrameLayout>

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="16dp"
        android:orientation="vertical">

        <TextView
            android:id="@+id/item_song_title"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textSize="16sp"
            android:text="Song_Title"/>

        <TextView
            android:id="@+id/item_song_artist_name"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="3dp"
            android:textSize="12sp"
            android:text="Song_Artist"/>

    </LinearLayout>

</LinearLayout>

</LinearLayout>

Isso foi realmente frustrante. Por favor, revise o código e me ajude com isso. Acho que fiz tudo corretamente, mas posso estar errado. Sei que o scrollview e o recyclerview não funcionam tão bem, mas já vi a visualização e a exibição do reciclador. Qualquer ajuda será apreciada. Obrigado!

questionAnswers(2)

yourAnswerToTheQuestion