java.lang.RuntimeException: java.lang.NullPointerExcept的处理

今天做项目遇到了这个问题,我把R.id写成了R.layout导致查找了半天的资料

下面就把查找的资料和体会总结一下

做Android项目中, java.lang.RuntimeException: Unable to start activity ComponentInfo{。。。。}: java.lang.NullPointerException这类空指针异常经常搞得蛋疼连篇欲罢不能
今天在做项目的时候就遇到了这样的问题,找了好久,各种百度终于解决了这个
看似蛋疼实则简单的问题。现在总结一下。
上图中的布局是利用GitHub里托管的框架写的
应用SlidingMenu的框架,必须要做的就是要把下载的ZIP解压到工作
控件,然后把Slidingmenu里的library导入到工程中,然后新建
项目,再把工程中的library导入到新建的项目中
注意,这里会出现SHA-1算法错误,要替换新的V4包
即可。
进入今天正文:空指针异常
这个错误太多见了,一般是下面几方面错误:
 ①一些控件只是声明了 没有实例化直接拿来用

  ②资源文件的命名有问题:前后多一个空格

  ③局部变量如int string没有赋予初值 直接拿来用

  ④网络访问 xml json解析等等场合,得到的数据其实为空,但没有进行if  null判断(仔细检查一些路径 key这些字符串是不是写对了  特别是多一个空格,导致娶不到数据)  
 
错误信息字符串:java.lang.RuntimeException: Unable to start activity ComponentInfo{com.first/com.first.Game}: java.lang.NullPointerException

一般都会在Activity  onCreate()方法里的setContentView(XXX)发生此错误,
网上查阅了很多原因,大概有四种重要可能的原因:

原因一:xxx的错误,若为R.layout.main  那么应该是main.xml文件中的标签
使用错误,最常见的而且编译器不会提示的错误就是 android:name 和 android:id 两者混淆,
仔细检查main.xml的标签是否全部正确

原因二:在setContentView(view)方法之后使用了requestWindowFeature()方法,
并且在此错误下面会提示requestFeature必须在setContentView之前使用,
只需要把requestWindowFeature()方法放在setContentView(view)方法之前就可以解决

原因三:在onCreate()方法之外,并且不属于任何一个方法体内直接给
某控件findById(R.id.xx)所导致,需要在某方法内并且在setContentView(view)
方法之前进行findById(R.id.xx)即可解决

原因四:在setContentView(view)之前没有对view进行实例化,
只进行了声明而直接 setContentView(view) 所导致,仔细检查view是否
setContentView(view)调用之前并在方法内进行实例化即可解决



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值