AS真机调试出现闪退

这类情况反正肯定是代码有问题,即使IDE上没有标红
可能是缺少view之类的引用,也可能是定义有错
解决方法可以在代码中加入一些日志log.d的输出,再debug看可以走到哪一步

一、真实案例
debug出报错“Attempt to invoke interface method 'boolean java.util.List.add(java.lang.Object)' on a null object ...”
这说明List的引用有问题,虽然定义了但并没有初始化(即下文中的原因五)

原先的错误定义方式: private List<tx> txList;
修改后正确定义方式:List<tx> txList = new ArrayList<>();</tx></tx>

二、真机调试闪退原因汇总
原因一: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)调用之前并在方法内进行实例化即可解决

原因五:因为发生了空指针的错误异常,所以你应该检查一下比如 Spinner 或者 list 这类的东西里面是否有值存在/是否初始化

原因六:引用drawable中的图片或xml但将图片或文件放在了drawable(v24)中

原因七:引用的图片超出内存

三、参考文献:
Java中初始化List的五种方式
https://www.jianshu.com/p/4c8c0e78061d

真机调试闪退可能的原因汇总:
https://blog.csdn.net/a1211545688/article/details/84312711?utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-4.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-4.control

全部评论

相关推荐

king122:实习经历可以重点写这里这里写的清晰一点,分点写。技能特长一般是放在上面的,而且你的实习经历不能只写实现了一些简单的接口,你要去写一些难点和亮点。甚至可以写一些数字指标上去,只要你能配合业务讲出来,根据我说的这些自己简单包装一下,面试应该会更多,至于笔试和八股,那就只能纯靠自己了,对项目包装感兴趣可以找我
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务