Android Studio-动态碎片崩溃应用程序

Android Studio-动态碎片崩溃应用程序,android,android-fragments,android-studio,fragment,android-recyclerview,Android,Android Fragments,Android Studio,Fragment,Android Recyclerview,我正在尝试使用以下教程的变体链接片段、RecycleView和CardView: 不幸的是,我的应用程序崩溃,并显示以下错误消息: “java.lang.IllegalStateException:RecyclerView没有LayoutManager” 我对Android开发相当陌生。我试图在Stackoverflow上找到类似的问题,但找不到问题。任何帮助都将不胜感激 主要活动的布局:“activity_library.xml”: 主活动类“LibraryActivity.java”

我正在尝试使用以下教程的变体链接片段、RecycleView和CardView:

不幸的是,我的应用程序崩溃,并显示以下错误消息:

“java.lang.IllegalStateException:RecyclerView没有LayoutManager”
我对Android开发相当陌生。我试图在Stackoverflow上找到类似的问题,但找不到问题。任何帮助都将不胜感激

主要活动的布局:“activity_library.xml”:


主活动类“LibraryActivity.java”:

导入android.app.FragmentManager;
导入android.app.FragmentTransaction;
导入android.os.Bundle;
导入android.support.v7.app.AppActivity;
导入android.util.Log;
公共类LibraryActivity扩展了AppCompatActivity{
私有静态最终字符串标记=LibraryActivity.class.getSimpleName();
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);/**创建活动并填充savedInstanceState(如果活动存在但已被销毁)(否则savedInstanceState将返回“null”)*/
setContentView(R.layout.activity_library);/**调用显示活动的XML布局库*/
如果(savedInstanceState!=null){
//从已保存状态还原成员的值
}否则{
//可能使用新实例的默认值初始化成员
}
试一试{
FragmentManager FragmentManager=getFragmentManager();
FragmentTransaction FragmentTransaction=fragmentManager.beginTransaction();
BooksFragment BooksFragment=新BooksFragment();
fragmentTransaction.add(R.id.library\u activity\u recycler\u view,bookFragment);
/*下面的一行是生成错误的一行-java.lang.IllegalStateException:RecyclerView没有LayoutManager*/
fragmentTransaction.commit();
}
捕获(例外e){
Log.d(标记“[ERROR]”+e.getMessage());
}
}
}
片段“fragment_books.xml”的布局:


以及片段类:

导入android.app.Fragment;
导入android.os.Bundle;
导入android.support.v7.widget.LinearLayoutManager;
导入android.support.v7.widget.RecyclerView;
导入android.view.LayoutInflater;
导入android.view.view;
导入android.view.ViewGroup;
公共类片段扩展了片段{
公共图书馆({
//必需的空公共构造函数
}
@凌驾
创建视图上的公共视图(布局、充气机、视图组容器、,
Bundle savedInstanceState){
视图v=充气机。充气(R.layout.activity\u库,容器,错误);
LinearLayoutManager布局管理器=新的LinearLayoutManager(getActivity());
layoutManager.setOrientation(LinearLayoutManager.VERTICAL);
RecyclerView bookRecycler=(RecyclerView)v.findViewById(R.id.library\u activity\u recycler\u view);
bookRecycler.setLayoutManager(layoutManager);
BookRecycleServiceAdapter=新的BookRecycleServiceAdapter();
bookRecycler.setAdapter(适配器);
/*在下面的行中,我们应该返回视图“v”还是RecyclerView“bookRecycler”*/
还书回收商;
}
}
正如我所说的,我是Android新手,因此,如果我的代码中包含很多错误,我深表歉意。谢谢你的帮助

完整的错误日志供参考:

04-18 14:04:52.323 11225-11225/com.wldtaster.tellmeastory E/AndroidRuntime:FATAL EXCEPTION:main
进程:com.wldtaster.tellmeastory,PID:11225
java.lang.RuntimeException:无法启动活动组件信息{com.wldtaster.tellmeastory/com.wldtaster.tellmeastory.LibraryActivity}:java.lang.IllegalStateException:RecyclerView没有LayoutManager
在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2325)上
位于android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387)
在android.app.ActivityThread.access$800(ActivityThread.java:151)
在android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303)上
位于android.os.Handler.dispatchMessage(Handler.java:102)
位于android.os.Looper.loop(Looper.java:135)
位于android.app.ActivityThread.main(ActivityThread.java:5254)
位于java.lang.reflect.Method.invoke(本机方法)
位于java.lang.reflect.Method.invoke(Method.java:372)
在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)上
位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
原因:java.lang.IllegalStateException:RecyclerView没有LayoutManager
位于android.support.v7.widget.RecyclerView.generateLayoutParams(RecyclerView.java:3393)
在android.view.LayoutInflater.inflate(LayoutInflater.java:492)
在android.view.LayoutInflater.inflate(LayoutInflater.java:414)
在com.wldtaster.tellmeastory.BooksFragment.onCreateView上(BooksFragment.java:23)
位于android.app.Fragment.performCreateView(Fragment.java:2053)
在android.app.FragmentManagerImpl.moveToState(FragmentManager.java:894)
位于android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1067)
运行(BackStackRecord.java:834)
位于android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1452)
在android.app.Activity.performStart上(Activity.java:6005)
在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2288)上
位于android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387)
在android.app.ActivityThread.access$800(ActivityThread.java:151)
在安卓