java.lang.RuntimeException: Unable to instantiate activity ComponentInfo异常解决
2015-06-16 16:16
525 查看
不能实例化activity有如下三种情况:
1.没有在Manifest.xml 清单中注册该activity,或者在创建完activity后,修改了包名或者activity的类名,而配置清单中没有修改,造成不能实例化。
2.自己新建了一个包,而注册时候依然用的默认包,例如,默认包是com.ghg.Dao包,你新建了一个com.ghg.DaoImpl包,并在此包中写了个FirstActivity,在manifest.xml中注册时你写的是<activity android:name=".FirstActivity"/>,此时相当于你在的类注册到了默认包中,系统在默认包中是找不到的,因为你的FirstActivity在com.ghg.DaoImpl包下,所以你注册时应写成包名加类名,如:<activity
android:name="com.ghg.DaoImpl.FirstActivity";这样系统才能在指定的包中找到对应的类。
3.还用一种就是你的FirstActivity定义成了抽象类,这种情况好像一般人不会犯。
如果上述三种情况都考虑到了,还会抛出此异常,那么就查看一下activity类里是否同时存在这个类的构造函数和oncreate(),如果是,那么删除构造函数试试,并把初始化放到
oncreate()中试试。
1.没有在Manifest.xml 清单中注册该activity,或者在创建完activity后,修改了包名或者activity的类名,而配置清单中没有修改,造成不能实例化。
2.自己新建了一个包,而注册时候依然用的默认包,例如,默认包是com.ghg.Dao包,你新建了一个com.ghg.DaoImpl包,并在此包中写了个FirstActivity,在manifest.xml中注册时你写的是<activity android:name=".FirstActivity"/>,此时相当于你在的类注册到了默认包中,系统在默认包中是找不到的,因为你的FirstActivity在com.ghg.DaoImpl包下,所以你注册时应写成包名加类名,如:<activity
android:name="com.ghg.DaoImpl.FirstActivity";这样系统才能在指定的包中找到对应的类。
3.还用一种就是你的FirstActivity定义成了抽象类,这种情况好像一般人不会犯。
如果上述三种情况都考虑到了,还会抛出此异常,那么就查看一下activity类里是否同时存在这个类的构造函数和oncreate(),如果是,那么删除构造函数试试,并把初始化放到
oncreate()中试试。
相关文章推荐
- 通过分析 JDK 源代码研究 Hash 存储机制
- struts2接收参数的几种形式
- Java - Why Enum Singleton are better in Java
- Java创建二叉树及其遍历的递归和非递归实现
- java.lang.character cannot be cast to java.lang.String
- Disabling contextual LOB creation as createClob() method threw error : java.lang.reflect.InvocationT
- Hadoop2.x的Eclipse插件编译与安装
- 接口测试-自动化-Java实现-CommonClass
- java web 项目log 配置 (将log 和hibernate的hql/sql 信息打印到控制台和日志文件中)
- 项目搭建系列之一:使用Maven搭建SpringMVC项目
- 在mac中导入hadoop2.6.0源代码至eclipse
- Java程序结束运行的原因
- Java并发编程-13-在集合点的同步-CyclicBarrier
- java的二维数组中如何计算行数和列数?
- 各种排序算法的分析及java实现
- 【JAVA编码专题】JAVA字符编码系列一:Unicode,GBK,GB2312,UTF-8概念基础
- 【JAVA编码】 JAVA字符编码系列二:Unicode,ISO-8859,GBK,UTF-8编码及相互转换
- 【JAVA编码专题】 JAVA字符编码系列三:Java应用中的编码问题
- 【JAVA编码专题】UNICODE,GBK,UTF-8区别
- 【JAVA编码专题】深入分析 Java 中的中文编码问题