Android开发过程遇到异常含义及解决方法整理

1. Unable to find explicit activity class   :

导致原因 :有Activity 没有 在AndroidManifest.xml文件中注册
解决办法:把 Activity添加到在AndroidManifest.xml文件中

 

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.


导致原因是 PositionActivity对应的布局文件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

06-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 虚拟机的问题

 

 

 

  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值