根据《第一行代码》里面的第四章中制做一个利用碎皮合理布局的新闻应用,发现编译成功后,没有提示任何编译错误。可是在运行APP后,点击RecyclerView里面的新闻标题,准备进行活动跳转,软件直接异常终止。java
发现新闻内容显示活动里面的业务逻辑代码确实没有问题,跳转也没有问题。运行窗口提示:android
Java.lang.RuntimeException: Unable to start activity ComponentInfo{com.droid/com.droid.activitys.UserCenterActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean java.lang.String.equals(java.lang.Object)' on a null object reference编辑器
而后布局文件出错布局
AndroidRuntime:android.view.InflateException: Binary XML file line #168: Error inflating class(这是其中报错的最主要的一行信息)。.net
经过找寻网上解决方法,本身也打了断点调试程序,发如今代码setContentView处直接异常调试
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.news_content_layout); String newsTitle = getIntent().getStringExtra("news_title"); String newsContent = getIntent().getStringExtra("news_content"); if (newsTitle.isEmpty() || newsContent.isEmpty()) { return; } NewsContentFragment newsContentFragment = (NewsContentFragment)getSupportFragmentManager().findFragmentById(R.id.news_content_fragment); newsContentFragment.refresh(newsTitle,newsContent); }
那么确实是解析XML布局文件,构建视图界面的时候出错了。开始去查看界面布局文件,发现可视编辑器提示 android Unable to inflate view tag without class attribute。code
那说明布局内容有问题,或者子布局,控件有问题。我开始看一篇的时候没发现有问题。直到找到网上博客博主犯了一样的错误http://blog.csdn.net/chaoxionghuai/article/details/68944129。xml
在news_content_frag.xml中我把中间分隔线的类名大小写写错了。blog
<View android:layout_width="match_parent" android:layout_height="1dp" android:background="#000"> </View>
因此致使程序异常终止。找了好久的缘由。小小的错误直接影响大的效果。get
因此得注意布局文件必定要正确解析。
成功单页显示新闻内容: