android开发中遇到的异常及解决方法
每次运行项目,可能因为粗心或者哪一行代码没有调用,会导致项目不能运行,出现异常。
以下就是我总结的各种异常,会一直更新。
1. Unable to find explicit activity class :
导致原因 :有Activity 没有 在AndroidManifest.xml文件中注册
解决办法:在AndroidManifest.xml文件中注册Activity
2 . [2013-01-30 10:49:14 - ddmlib] 您的主机中的软件放弃了一个已建立的连接。
Java.io.IOException: 您的主机中的软件放弃了一个已建立的连接。
at sun.nio.ch.SocketDispatcher.write0(Native Method)
at sun.nio.ch.SocketDispatcher.write(Unknown Source)
at sun.nio.ch.IOUtil.writeFromNativeBuffer(Unknown Source)
at sun.nio.ch.IOUtil.write(Unknown Source)
at sun.nio.ch.SocketChannelImpl.write(Unknown Source)
at com.Android.ddmlib.JdwpPacket.writeAndConsume(JdwpPacket.java:213)
at com.android.ddmlib.Client.sendAndConsume(Client.java:575)
at com.android.ddmlib.HandleHeap.sendREAQ(HandleHeap.java:348)
at com.android.ddmlib.Client.requestAllocationStatus(Client.java:421)
at com.android.ddmlib.DeviceMonitor.createClient(DeviceMonitor.java:837)
at com.android.ddmlib.DeviceMonitor.openClient(DeviceMonitor.java:805)
at com.android.ddmlib.DeviceMonitor.processIncomingJdwpData(DeviceMonitor.java:765)
at com.android.ddmlib.DeviceMonitor.deviceClientMonitorLoop(DeviceMonitor.java:652)
at com.android.ddmlib.DeviceMonitor.access$100(DeviceMonitor.java:44)
at com.android.ddmlib.DeviceMonitor$3.run(DeviceMonitor.java:580)
导致原因:模拟器没有开启或者真机没有开启开发者usb调试
解决办法:模拟器重启或者 开启开发者USB调试
3. java.lang.RuntimeException: Unable to start activity ComponentInfo{XXX.PositionActivity}:
java.lang.RuntimeException: Binary XML file line #23: You must supply a layout_width attribute.
导致原因:Activity对应的布局文件XML存在语法错误
解决办法:仔细检查对应布局文件,找出引发错误的错误代码,进行改正
4.发送Http请求时 android.os.NetworkOnMainThreadException异常
导致原因:在主线程访问网络时出的异常。 Android在4.0之前的版本 支持在主线程中访问网络,
但是在4.0以后对这部分程序进行了优化,访问网络的代码不能写在主线程中了。
解决办法:在要使用HTTP请求的Activity的OnCreate方法中加入:
StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder().detectDiskReads().detectDiskWrites().detectNetwork().penaltyLog().build());
StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder().detectLeakedSqlLiteObjects().detectAll().penaltyLog().penaltyDeath().build());
5.android数据库sqlite关闭异常 :
ERROR/Cursor(1188): Finalizing a Cursor that has not been deactivated or closed. database = /data/data/com.icss/databases/resoute_list, table= resoute_list, query = SELECT id, user_name,socre, part_time ,type FROM resoute_list ORDER BY id desc
12-13 18:04:35.176: ERROR/Cursor(1188): android.database.sqlite.DatabaseObjectNotClosedException: Application did not close the cursor or database object
that was opened here
导致原因:每次查询完成后需要关闭 SQLiteDatabase 对象 databaseHelper 对象 Cursor对象,在第一次使用查询时 没有关闭 databaseHelper 对象,只关闭SQLiteDatabase 对象 和 Cursor对象,第二次(第二个Activity中查询)查询时出现此异常
解决办法:每次查询完成后需要依次关闭 Cursor对象 、databaseHelper 对象、 SQLiteDatabase 对象。
6.多次clean 项目出现:
Android: R cannot be resolved to a varia...
导致原因:自动生成的R文件被删除 或不完整
解决办法:
(1)检查Android 的SDK是否丢失需要重新下载,检查build path
(2)确保class没有import Android.R;
(3)错误class引用的layout的xml文件没有错误
(4)检查AndroidManifest.xml文件,里边的package,layout配置文件,strings.xml等的字符串全部书写正确
(5)layout的xml文件中引用的strings.xml中的字符串拼写完全正确
(6)在layout 的xml文件手写添加一个控件,看id能否在R.java中自动生成,如果不能,那很大可能就是这个layout 的xml文件有问题,查看格式是否使用正确,或者包含什么非法字符串,或者调用到了不正确的字符串,等等,可以使用排除法,挨个去掉控件,直到发现error message消失或者id能在R.java中自动生成。
(7)删掉gen文件夹,使R.java重新自动生成一次,如果不能生成,继续检查layout的xml文件是否有如上不易发觉的问题
(8)Clean project ,重新build,或者重新import project。
(9)重启eclipse
(10)重启电脑,以防Android 虚拟机的问题
7.Java.lang.NullPointerException
导致原因:项目出现空指针异常是最常见的,一般都是上下文,或者控件没有传进来,list集合可能是空之类
解决方法:elipse和studio一般都会指明哪一行有空指针,仔细找找,需要的对象有没有传进来
android开发中遇到的异常及解决方法相关推荐
- android应用开发中收集的异常日志解决方法记录
这里主要是列出开发中收集的一些错误日志,以及解决方案,仅供参考,也有待解决的问题 1, ListView 中出现java.lang.IndexOutOfBoundsException: Invalid ...
- android开发中的ANR异常
android开发中的ANR异常 参考文章: (1)android开发中的ANR异常 (2)https://www.cnblogs.com/yejiurui/archive/2012/11/08/27 ...
- Android实际开发中的bug总结与解决方法(一)
Android实际开发中的bug总结与解决方法(一) 参考文章: (1)Android实际开发中的bug总结与解决方法(一) (2)https://www.cnblogs.com/ywq-come/p ...
- java开发中遇到的问题及解决方法(持续更新)
java开发中遇到的问题及解决方法(持续更新) 参考文章: (1)java开发中遇到的问题及解决方法(持续更新) (2)https://www.cnblogs.com/LiuYanYGZ/p/6112 ...
- 微信小程序在开发中遇到的问题与解决方法
微信小程序在开发中遇到的问题与解决方法 参考文章: (1)微信小程序在开发中遇到的问题与解决方法 (2)https://www.cnblogs.com/zjjDaily/p/8032142.html ...
- Android Studio中 no module 问题,解决方法
Android Studio中 no module 问题,解决方法 参考文章: (1)Android Studio中 no module 问题,解决方法 (2)https://www.cnblogs. ...
- 前端开发中遇到的问题及解决方法
前端开发中遇到的问题及解决方法 1,何为MVVM? view层: 视觉层:在前端开发中,通常是DOM层:主要作用是给用户展示各种信息: Model层: 数据层:数据可能是我们固定的死数据,更多的是来自 ...
- 小米首页实践开发中遇到的问题及解决方法
小米首页实践开发中遇到的问题及解决方法 1.菜单栏的指向小三角问题 解决方法:使用矩形边框绘制三角形,用CSS设置矩形内容为空.边框设置一定的宽度(三角形的高),并且设置一个方向的边框颜色,其他方向颜 ...
- Android开发中保存数据的四种方法方法
本文来自:安卓航班网 在Android开发中我们会接触到四种数据存储方式,每种存储方式都各有不同:以下安卓航班分别列举了Android开发中的不同存储方式的特点. 一,Preferences Pref ...
最新文章
- BLE-NRF51822教程15-BLE地址
- 会议更流畅,表情更生动!视频生成编码 VS 国际最新 VVC 标准
- Acwing -- 单调队列优化的DP问题
- c mysql web开发实例教程_Web开发(六)MySql
- 【leetcode】390. Elimination Game
- 时过境迁:Oracle跨平台迁移之XTTS方案与实践
- Redis性能问题排查解决手册(七)
- 中limit怎末用_Nginx配置——关于limit_conn_zone和limit_conn
- HashSet的自定义实现
- Scratch3.0安装教程
- 薛定谔教程--生成对接盒子 | Receptor Grid Generation
- docker源码编译安装步骤解析
- Diablo3英雄榜-使用Volley和Gson来处理暴雪API的Json数据
- c++ 工厂模式简介和应用场景
- 2016到2019,百度大脑持续刷新
- 手机浏览器打开微信app的方法
- 【基于Android的连连看游戏的设计与实现】
- 【Qt】通过QtCreator源码学习Qt(十二):Q_D和Q_Q指针(简称“d指针”)详解
- 世界第一台通用计算机:ENIAC
- Motion-based Detection and Tracking in 3D LiDAR Scans
热门文章
- 5G - NR RLC协议阅读笔记4 - 三个重要定时器的理解
- audioread函数用法(matlab)
- 【转载】Java语言中的参数传递
- kafka的Rebalance问题分析(续)
- 刨根问底-AQS源码解析
- Plants vs. Zombies(二分)
- CS61A 2022 fall lab0
- 实践是检验真理的唯一标准之python array.sum(axis=0)
- FTP上传下载工具(FlashFXP) v5.5.0 中文版
- Oracle PURGE子句清除回收站中的对象