android开发中bug收集(Android程序员日常开发中异常总结)
android开发中bug收集(Android程序员日常开发中异常总结)NegativeArraySizeException 创建一个大小为负数的数组错误异常IndexOutOfBoundsException 下标越界异常IllegalArgumentException 传递非法参数异常ArithmeticException 算术运算异常ArrayStoreException 向数组中存放与声明类型不兼容对象异常
CaptainAndroid.png
Java异常平时开发中遇到的java异常很多,因为引起原因一目了然,当然也有不好解决的,比如一个简单的空指针异常你可能始终无法找到其为空的原因,甚至使用前还做了空判断。也有可能一个类型强制转换异常被报了出来可是你始终无法找到为什么出错的原因。偶先几率极低,只能catch的来了事。
-
NullPointerException空指针引用异常
-
ClassCastException 类型强制转换异常
-
IllegalArgumentException 传递非法参数异常
-
ArithmeticException 算术运算异常
-
ArrayStoreException 向数组中存放与声明类型不兼容对象异常
-
IndexOutOfBoundsException 下标越界异常
-
NegativeArraySizeException 创建一个大小为负数的数组错误异常
-
umberFormatException 数字格式异常
-
SecurityException 安全异常
10.UnsupportedOperationException 不支持的操作异常
Android自身特性异常
-
java.lang.NullPointerException
-
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文件发现异常调用的逻辑关系。
了解更多网络安全动态、干货、热点资讯,请关注微信公众号“e安在线”!
本文作者:Anderson/Jerey_Jobs
文/Anderson小码农(简书作者)