android.content.res.Resources$NotFoundException: Resource ID #0x0

从别的项目中复制了一段AlertDialog的代码粘贴到我的项目中,然后提示要导包,于是很随意的选中AlertDialog按Alt+回车。android.content.res.Resources$NotFoundException: Resource ID #0x0


如下图所示,大家可以看到,有两个AlertDialog,一个是v7包下的AlertDialog,一个不是。当时也没多想直接导入了V7包下的AlertDialog。

android.content.res.Resources$NotFoundException: Resource ID #0x0


如下图所示,导入的就是V7包下的AlertDialog。

android.content.res.Resources$NotFoundException: Resource ID #0x0


导完包后发现一个问题,一弹对话框就崩,查看了一下日志。报错的是android.content.res.Resources$NotFoundException: Resource ID #0x0。如下图所示:

android.content.res.Resources$NotFoundException: Resource ID #0x0


大体的意思就是资源文件未找到,感觉莫名其妙,但是我还是觉得跟导包有关系。然后发现,我的这个activity是继承自Activity,而不是继承AppCompatActivity,隐隐地感觉刚刚不应该导V7包的AlertDialog。

android.content.res.Resources$NotFoundException: Resource ID #0x0



于是把import android.support.v7.app.AlertDialog;这行代码给删除了,重新导包。这回导的是API25的AlertDialog,不再用V7包下的AlertDialog。

android.content.res.Resources$NotFoundException: Resource ID #0x0


然后重新运行app,这回就不报错了。bug就这样解决了。

所以有经验的开发人员在遇到问题的时候能推测一个大概的方向,这样解决问题就快了。

如果本文对你有帮助的话,麻烦在左侧点个赞,谢谢支持!