android java 指针异常处理,Android程序员日常开发中异常总结
CaptainAndroid.png
Java异常
平时开发中遇到的java异常很多,因为引起原因一目了然,当然也有不好解决的,比如一个简单的空指针异常你可能始终无法找到其为空的原因,甚至使用前还做了空判断。也有可能一个类型强制转换异常被报了出来可是你始终无法找到为什么出错的原因。偶先几率极低,只能catch的来了事。
NullPointerException空指针引用异常
ClassCastException 类型强制转换异常
IllegalArgumentException 传递非法参数异常
ArithmeticException 算术运算异常
ArrayStoreException 向数组中存放与声明类型不兼容对象异常
IndexOutOfBoundsException 下标越界异常
NegativeArraySizeException 创建一个大小为负数的数组错误异常
umberFormatException 数字格式异常
SecurityException 安全异常
10.UnsupportedOperationException 不支持的操作异常
CSDN上更多的java异常
Android自身特性异常
java.lang.NullPointerException
异常原因:另一种情况使用fragment时,fragment相关布局,必须给每个view设置id,否则通过activity获得fragment的实例时会出现以上异常
解决方法:为fragment布局的每个view设置ID
Android中引入第三方Jar包的方法(Java.lang.NoClassDefFoundError解决办法)
1、在工程下新建lib文件夹,将需要的第三方包拷贝进来。
2、将引用的第三方包,添加进工作的build path。选中jar包->Build Path
3、(关键的一步)将lib设为源文件夹。如果不设置,则程序编译可以通过,但运行的时候,会报:选中lib文件夹->source code
java.lang.NoClassDefFoundError
Android中引入第三方Jar包的方法(java.lang.NoClassDefFoundError解决办法)
Caused by: android.os.TransactionTooLargeException
导致原因是:Binder传输的数据太大
如果Binder的参数或返回值太大,不适合的事务缓冲区,然后调用将失败,并将被抛出TransactionTooLargeException。
解决方法:
不要将大量数据传入Binder
android.database.CursorWindowAllocationException:Cursor window allocation of 2048 kb failed
导致原因:主要原因是因为使用了SimpleCursorAdapter类,其中的Cursor参数需要我们手动关闭,否则就会出现以上异常。
解决方法:cursor.close()
Excessive JNI global references错误的解决方案 GREF暴增
导致原因:vm对jni层的reference有个数限制,过多很造成VM aborting。因此每次在GREF增加到2000以上的时候就直接aborting了
解决方法:及时回收或关闭引用
android.view.WindowManager$BadTokenException: Unable to add window -- token
导致原因:使用getApplicationContext()获得的Context,而必须使用Activity,因为只有一个Activity才能添加一个窗体。
解决方法:采用当前Activity的Context
android.database.sqlite.SQLiteCantOpenDatabaseException: unable to open database file
导致原因:重复安装软件,导致Sqlite3打开数据库异常
解决方法:卸载相应软件,开关机,重新安装该软件,即可以解决相关异常。
java.util.ConcurrentModificationException(并发操作异常)
异常原因:ArrayList是非线程安全的,当同时在遍历和修改ArrayList时,就会出现该异常
解决方法:使用Vector替换ArrayList,Vector是线程安全的。Vector的缺点:大量数据操作时,由于线程安全,性能比ArrayList低
so库文件异常(JNI层异常)
异常原因:在Android应用层开发中,我们经常会使用so库文件。当so库文件发生异常时,我们只能在adb log中发现fatal libc这样的异常信息,仅此而已,并不能发现异常调用的逻辑关系, 这是我们就需要查看so 库异常Log信息。在Android手机的/data/tombstones 的路径下就包含了so库文件发生异常的Log信息,开发者可以查看该路径下载Log文件发现异常调用的逻辑关系。
谢谢大家阅读,如有帮助,来个喜欢或者关注吧!
本文作者:Anderson/Jerey_Jobs
android java 指针异常处理,Android程序员日常开发中异常总结相关推荐
- android java 指针异常处理,Android自定义抛出异常的方法详解
前言 在android开发过程中,我们经常遇到异常的问题,崩溃抛出异常的时候,是非常令人烦闷的.但是异常有一个好处,使得app能在编译的时候给我们提供一些bug信息,有时可能比较模糊,有时可能很精准, ...
- 程序员日常开发的八荣八耻!
点击关注公众号,Java干货及时送达 今天来讲讲程序员日常开发的八荣八耻.还挺有意思的,给大家分享一下,哈哈~ 1. 以接口兼容为荣,以接口裸奔为耻 以接口兼容为荣,怎么理解呢? 很多bug都是因为修 ...
- 程序员日常工作中如何正确的偷懒?
这是北京的雪,昨天刚拍的 又是一个艳阳天,张大胖像一个天真无邪的孩子屁颠屁颠的欢快的走进公司,做到办公桌前,深情的打开了陪伴自己多年的电脑,如往常一样按部就班的和他玩耍了起来,大老远就听到张大胖那里噼 ...
- android java 指针,opencv android:向我的代码中添加cascade分类器后出现空指针异常
我在casecadeclassifier.java类中收到空指针异常 在这里: Mat objects_mat = objects; detectMultiScale_4(nativeObj, ima ...
- 一个程序员产品开发中的吐槽和体会
一个好的产品就是一个公司的方向,一个公司的未来.我根据我参与过的产品,谈谈一个程序员眼中产品开发的历程和体会. 开始初期阶段就是有公司的高层制定产品的方向,宗旨就是以用户为基础,以获得盈利为目的.当方 ...
- Java程序员日常开发提效工具(谷歌,Idea)-长期更新
谷歌 1. Adblock Plus 广告拦截工具 Adblock Plus 是 Firefox.Chrome.Safari.Android 和 iOS 上最受欢迎的广告拦截程序.拦截 Faceboo ...
- 程序员在职场中该不该守规矩,讲原则
几年前东哥在内部会议时感叹:"规规矩矩卖正品的愈来愈难,卖假冒伪劣的早就开上奔驰宝马了,导致越来越多人去买假货水货.那么大家都没有良知么?其实是长期社会观念的畸形导致的 -- 有钱,就是大爷 ...
- Java程序员-日常工作技能清单
区别于找工作时的各种八股文整理,自己整理了一些工作半年来觉得一个Java后端程序员在实际工作中需要用到的技能,希望能给刚刚要工作的Java程序员们一点帮助吧. 1.计算机基础 Linux命令:cat. ...
- Java程序员日常积累-向大神学习(三)
前言 <Java程序员日常积累-向大神学习>系列是本人根据日常工作中碰到的问题写的一个问题记录,比较琐碎零散. 主要用于记录和忘记时可以有个地方查询.现分享给大家,这是这个系列的第三篇. ...
最新文章
- 关于学习Python的一点学习总结(14->换一种方法创建字典->访问字典)
- 【原创】分布式之缓存击穿 【原创】自己动手实现静态资源服务器 【原创】自己动手实现JDK动态代理...
- Apache Jackrabbit源码研究(五)
- .net 无法通过嵌套类型访问外部类型的非静态成员-解决方案
- 深入理解php底层:php生命周期 [转]
- 【深度学习】网络架构设计:CNN based和Transformer based
- MySQL的timestamp类型存储时间范围为什么是2038年之内
- 树上倍增求LCA及例题
- 2019年7月数据库流行度排行:Oracle王者归来获大幅增长
- VB判断指定的WORD文档是否被打开
- Java关于继承中的内存分配
- UI设计师必备|Web设计尺寸规范
- Python中scipy.signal.stft函数详解
- 使用mysql解决Excel换行统计问题
- CSS代码写一个网页,有留言板
- android---Apktool解压apk
- MySQL 重置 root 密码以及修改密码时报错password字段不存在
- 豆腐干豆腐干地方的规定
- 程序人生 - 过来人经验:程序员怎么升职加薪,迎娶白富美
- python鱼眼图像识别_使用OpenCV校准鱼眼镜头的方法
热门文章
- hive常用的内置函数
- DISM 修复 Win10
- LED和LCD,LED和OLED,AMOLED和OLED有什么区别
- Raspberry Pi简介
- Linux配置本机ssh免登陆(解决启动hadoop3.0时报 Permission denied (publickey,password). 错误)
- Mysql常用命令行大全
- 基于Servlet+jsp+mysql开发javaWeb学生成绩管理系统
- python股票数据分析_用Python进行股票数据分析
- 创业公司的软件研发规范
- 你想要的宏基因组-微生物组知识全在这(2022.12)