情况是这样的:
做例子时新建一个Android应用,创建时应用包名为“auctionclient”(应用包名可以在Manifest.xml文件的package="包名"内看到),创建成功后发现类的路径时“action.client.util”,于是在src下创建了“action.client.util”这个包,并写了Login.java这个activity和login.xml布局文件,同时在Manifest.xml文件注册了程序入口为“Login”,测试程序时,运行时出现“source not found”,跟踪查看发现是activity没找到。
这个错误首先想到就是activity注册时路径不对,查看Manifest.xml,当时注册时只写了类名,没有加包名,于是改为
“action.client.util.Login”,运行同样出错。查询资料知道这里需要完整的相对路径才行,是不是还要加上应用包名,马上加上“auctionclient.action.client.util.Login”,出错。到底哪里不对,于是找个原来正确的程序对照看了注册路径发现我的程序中,Manifest.xml中包名为“auctionclient”,而Login.java的包名是“action.client.util”,这是表示两者根本不在一个包下,于是修改Manifest.xml中包名为“action.client”,activity注册路径为“action.client.util.Login”,运行,终于成功。
通过这个发现,在开发手动创建包时如果对包的层次不清楚的话,很容易造成包名不一致的情况,所以要注意。这个例子也让我开始留意包名,之前都不知道他们之间的关系。
当然这个问题应该可以在两者不在一个包的情况下也能运行,这个问题先留着。。