1.arrayindexoutofboundsexception:length=0,index=0
原因:该问题的产生是因为在数组长度为0时,进行了0点位置的取值,导致数组越界的问题。
处理方法:根据log查看出现问题所打印出来的行数,然后根据行数值判断取值语句。针对该类问题,最直接的解决办法是判断数组是否大于0,在进行求取。例如:
public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) {
if(grantResults.length > 0) { //修改所添加的语句
if (requestCode == 1 && grantResults[0] != PackageManager.PERMISSION_GRANTED) {
finish();
}
}
2.android.view.WindowManager$BadTokenException: Unable to add window -- token null is not for an application
原因:在未创建对象时,就开始show
处理方法:常为AlertDialog.show的时候所出现的异常。在show的时候必须要用context或者Activity.this,而不是用getApplication(),因为只有一个Activity才能添加实例;或者添加try,catch异常,使其能够跑出异常。
原因:产生该问题的原因是因为数据库同时在被多个线程在操作,导致数据混乱。
解决方法:(1)加入同步锁,但是同步锁可能会产生ANR问题,导致程序长时间无响应;
(2)db.isOpen()查看数据库是否打开及db.isDbLockedByOtherThreads()判断是否在被其他程序上锁,如果数据库处于关闭状态及未被锁定状态,即可。
此外,若不是很放心,可以再在外层加入try...catch语句进行异常捕获。
网友评论