最近刚开始学android,在建立项目时专门去掉了自动生成activity选项,想自己完全重新写一下。
建好项目后,在src目录下是没有包的,我自己建了一个包,建立类,继承activity,覆写oncreate函数,然后建立对应的布局XML文件,然后AndroidManifest.xml文件中注册activity,然后运行,运行时总是出错,错误如下:
警告:dalvikvm(22852): threadid=1: thread exiting with uncaught exception (group=0x40015568)
错误:AndroidRuntime(22852): FATAL EXCEPTION: main
错误:07-22 22:38:42.229: E/AndroidRuntime(22852): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{(跟你的activity...余下省略)
看了错误的大概意思是我写的activity找不到,但看在Manifest的activity部分是正确的,后来仔细对比了一下我这个工程与自动生成的工程的差异,发现我的src下的activity包名与gen下的包名不同,而自动生成的包名是相同的,GEN下的包名是我建立工程时填写的包名,然后我修改GEN下的包名(应该直接修改SRC下的包名就正确了,但我希望保留SRC下的包名),可是修改后总是不能删除原来的包,系统总是自动生成,后来我想系统多半是根据Manifest里面的包生成的包名,故修改了Manifest文件里的package名字,如下所示,改成与SRC下activity里一致,然后错误解决。
原文章出处:
http://www.cnblogs.com/albert1017/archive/2012/07/22/2604208.html
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.albert.activity"