android开发常见异常解析:java.lang.RuntimeException: Unable to instantiate activity ComponentInfo

在Android程序的开发过程中,如果你是新手的话,往往会由于小疏忽导致一些程序运行时的异常,java.lang.RuntimeException: Unable to instantiate activity ComponentInfo

就是一类,这种异常容易让你抓破头皮也百思不得其解,本文我们来探讨一下这个异常的产生。


首先,通过Eclipse 创建一个Androind工程命名为MyLayoutSample:




点击Next , 在要求生成Activity 对话框出现时反选Create Activity, 我们需要自己生成Activity, 最后点击Finish



接下来,添加一个Activity 的类文件,命名为 LayoutSampleActivity, 配置如下:




在新建的Activity 中,我们需要重载 onCreate函数:




由于是新生成的Activiy, 我们需要在AndroidManifest.xml文件中告诉系统,程序运行时启动我们刚创建的Activity,:



完成这一步后,运行程序到模拟器上,我们会发现如下错误:



即异常 java.lang.RuntimeException: Unable to instantiate activity ComponentInfo 出现了。


这个问题出现的原因之一在于, 当android程序运行时,系统会解析AndroidManifest.xml,并从中找到要启动的Activity, 如果xml中指明的Activity没有标明它处于哪个Package下的话,系统自动到默认Package下查找,由于我们在创建Activity时,没有设置它属于哪个包:

 

因此在默认Package下系统找不到要加载的Activity,因此引发异常,该问题的解决方法之一是在activity的java文件中为其指定package(黑色线):



再次运行程序,异常就消失了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值