java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.newsreader/com.example.newsreader.NewsReaderActivity}: android.view.InflateException: Binary XML file line #45: Error inflating class fragment,这个错误是在做一个android的多屏幕设计的时候运行时发生的。

这个错误说的很清楚,无法启动组件详情。并在下面报出了at com.example.newsreader.NewsReaderActivity.onCreate(NewsReaderActivity.java:79),在onCreate初始化的时候,setContentView(R.layout.main_layout);的时候,报错了。于是我在这行打断点之后发现,这行的时候,main_layout并不是我设置的那个布局页面,于是我开始有些明白了,因为我的项目是为了适配所有的屏幕大小的,所以我的这个main_layout并不是一个具体的xml布局,而是指定的一系列布局的引用。当我改成具体的简单无误xml布局后,该错误就没有了。

后来,经查阅资料发现,我已知的,有下面几类情况发生时,会报出这个错误:

1.setContentView()中指定的布局对象不是具体布局文件,而是一个引用,而该引用或许存在错误。系统加载时因不能分辨故而运行时异常

2.指定的xml是一个具体的布局文件,但是布局文件写的不对,如标签结束不对,标签的结束不对,即组件使用方式不对

3.引用的资源未初始化,导致运行时异常,如R.string.XXX或者R.resource.XXX

4.指定的布局xml既是具体的一个xml,其中的组件也没错,再来引用资源也是对的,那么,唯一可能的就是这个布局view中引用的图片的尺寸太大,设备无法识别,固然运行时异常。

ps:以上的错误我都是在模拟器上运行所得的,手机或平板上并未测试,可能不具备代表性,观点也是个人之见,不知道是否正确,如有不对,欢迎指正。

更多相关文章

  1. 安装时提示:INSTALL_FAILED_INSUFFICIENT_STORAGE
  2. 解决 app:transformClassesWithDexForDebug 错误
  3. Android相对布局实例
  4. Android用Proguard混淆代码遇到的问题
  5. Android:Android布局方式
  6. view.java
  7. Android(安卓)定时到服务器取数据并刷新
  8. 一个图片制作ProgressBar
  9. LeakCanary原理分析

随机推荐

  1. 深度解析MySQL启动时报“The server quit
  2. MySQL5.7.18修改密码的方法
  3. Linux CentOS MySQL数据库安装配置教程
  4. Centos 7下使用RPM包安装MySQL 5.7.9教程
  5. MySQL生僻字插入失败的处理方法(Incorrec
  6. Mysql中的join操作
  7. win10下安装两个MySQL5.6.35数据库
  8. win10 mysql 5.6.35 winx64免安装版配置
  9. mysql 5.5 安装配置图文教程
  10. MySQL数据库卸载的完整步骤