java.lang.RuntimeException: Unable to start activity ComponentInfo解决方案

  1. java.lang.RuntimeException:Unable to start
  2. activityComponentInfo{com.example.newsreader/com.example.newsreader.NewsReaderActivity}:  android.view.InflateException: Binary XML file line #45: Error inflating class
  3. 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:以上的错误我都是在模拟器上运行所得的,手机或平板上并未测试,可能不具备代表性。观点也是个人之见,不知道是否正确,如有不对,欢迎指正。


  原文链接:http://www.eyeandroid.com/thread-9570-1-131.html
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值