美文网首页Android转载
inflate()引发NullPointerException

inflate()引发NullPointerException

作者: Silver_Lee | 来源:发表于2016-07-11 10:02 被阅读2599次

之前碰到一个特别辣眼睛的问题,爬了老久才从坑里爬出来,今天特此记录一下,长长记性。

footView = LayoutInflater.from(mContext).inflate(R.layout.list_account_footer, null);
dialogView = LayoutInflater.from(mContext).inflate(R.layout.dialog_add_account, null);

情况是以上的两行孪生代码,咋一看,没毛病吧,但是第一行通过了,第二行报错

 java.lang.NullPointerException: Attempt to invoke virtual method 'boolean java.lang.String.equals(java.lang.Object)' on a null object reference
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:719)
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:810)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:508)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:418)
    at com.android.internal.app.AlertController.setupView(AlertController.java:482)
    at com.android.internal.app.AlertController.installContent(AlertController.java:239)
    at android.app.AlertDialog.onCreate(AlertDialog.java:356)
    at android.app.Dialog.dispatchOnCreate(Dialog.java:373)
    at android.app.Dialog.show(Dialog.java:274)
    at com.beok.joylife.app.html5.activity.ChangeAccountActivity$3.onClick(ChangeAccountActivity.java:96)
    at android.view.View.performClick(View.java:4811)
    at android.view.View$PerformClick.run(View.java:20136)
    at android.os.Handler.handleCallback(Handler.java:815)
    at android.os.Handler.dispatchMessage(Handler.java:104)
    at android.os.Looper.loop(Looper.java:194)
    at android.app.ActivityThread.main(ActivityThread.java:5549)
    at java.lang.reflect.Method.invoke(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:372)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:964)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:759)

居然给我报了一个看似毫无关联的空指针异常让我好焦灼啊,为啥第一行就可以,到了老二就不行了呢?摸不着头脑太可怕了...

后来发现问题的所在简直...

<view    style="@style/Line_View"    android:layout_height="1dp"/>

以上是dialogView引用的布局文件R.layout.dialog_add_account.xml里的一个分割线,咋一看也是没毛病,但是,请注意,这里的view中的v是小写的...额...
所以编译进程卡在这里,布局资源文件果断未识别,inflate引用了一个空的布局文件id

好吧,居然是因为手残导致的资源文件编译未通过,不过view跟View真的比较容易搞错,而且AS也不过提示错误,所以还是自己强行记忆一下吧

相关文章

网友评论

  • fkaking:顶一下兄弟,帮忙解决问题了
  • Arcturis:兄弟,我第二次遇到了这个坑,找了好久,碰巧看到你这篇文章才想起来以前也是view小写引起的
  • JerryShen:哈哈哈 看到有这么多人跟我一样粗心 我就放心了
  • f805ef7207b8:也是同样的错误 谢谢楼主
  • 绝版王子:2018年1月10日..一模一样的错误,感谢楼主啊!!!:pray:
  • Cloverss:强!!! 幸亏我还机智的百度一波
  • 天涯饭否共知乎:哇靠哇靠 查了半天我也是
  • 狂暴的土豆泥:特意登录上来赞你:+1:
  • 我是热烈:我也遇到同样的问题了
  • BigLong:扎心了,老铁!以前遇到过发现View大小写的问题,今天遇到了又忘了,然后一直没找到原因,感谢这篇文章!!!
  • 7b3eb88ecb67:找了半个小时的错误。。。:joy: :joy: :joy:
  • 哒雄:谢谢,我的错误就这个
  • 我爱吃栗子啊:谢谢,遇到了同样的坑……差点爬不出来
  • 飞翔起点:我也遇到了,感谢楼主:smile:
  • fe7c11f64b4c:我也是因为这个找了2小时错..
  • 9e90dc8da6a3:哈哈,我也遇到了
  • 24eae06841e6:登录一下表示感谢。。一毛一样的错误
  • 1a8b012080da:居然真的是这个错误,而且是一毛一样,点赞
  • 32c2b328e061:我登录就是为了给你点个赞 牛逼...
  • ostea:多么痛的领悟 ,刚刚就遇到了。 莫名其妙一个空指针
  • 74a6fe7ac4f8:2017年3月底打卡,我也遇到了这个问题:joy:
  • lforxeverc:要哭死了,我也犯了同样的错误!
  • Kuson:要赞要赞,要不是看到你这我都还没发现:joy:
  • 酷菜:我后来发现也真的是和你一样的 错误啊 可是很奇怪的是 本来之前也还可以运行的 好像也没动过 自己变小写了
  • 编码人生:6666666666,兄弟给你100个赞。
  • 9ccf39af8df7:可是后来我发现这个问题后,把view注释掉后,还是老是报这个错误呢?
    Silver_Lee:@Hellozhongxin 检查一下布局文件中其他的部分是不是也有未检测出来的编写错误,一般这种报空的就是因为布局文件未编译成功导致传入一个空引用造成的
  • 孟威:多谢,多谢,解决问题了!
  • 小YiY:哎呦喂。。。要不是看到我都不知道自己写了小写,没想到居然有人和我犯这样的一毛一样的错误。。。哎呦喂。。。 :joy:
  • 辽东小码农:多么痛的领悟呀。。。。
    我不看你的文章,我都没意识到view小写!!!
    Silver_Lee:@辽东小小 能帮到你很高兴,共勉之..

本文标题:inflate()引发NullPointerException

本文链接:https://www.haomeiwen.com/subject/pizdjttx.html