在Android中若两个apk的包的名称相同,则在安装时将删除同名的包,并且在调试时会出现以下错误:
[2011-10-25 16:10:03 - HelloPrj] ActivityManager: Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=mtk.tf.com/mtk1.tf.com.HelloAppActivity }
[2011-10-25 16:10:03 - HelloPrj] ActivityManager: Error type 3
[2011-10-25 16:10:03 - HelloPrj] ActivityManager: Error: Activity class {mtk.tf.com/mtk1.tf.com.HelloAppActivity} does not exist.
虽然该错误可以通过eclips->project->clean Clean相关工程后解决,但比较讨厌。为此,需要更改Eclips中Android工程的包的名称,网上搜索了一下,但解决方法似乎都不正确,在多次试验后终于找到了正确方法:
<!--[if !supportLists]-->1, <!--[endif]-->环境
不知是否和Eclips版本和ADT版本有关
<!--[if !supportLists]-->a) <!--[endif]-->Eclips版本 V3.7
<!--[if !supportLists]-->b) <!--[endif]-->ADT版本 14
c) <!--[endif]-->Android SDK API 14-r01
<!--[if !supportLists]-->2, <!--[endif]-->更改过程
注意,必须完全按照下列步骤操作
a) 修改AndroidManifest.xml文件中包的名字
如:package="my4.tf.com"
改成:package="my.tf.com"
改完后按保存按钮保存改动
b) 在Package Explorer中修改src目录下包的名字为新的名字,如:my.tf.com
通过按快捷方式F2或选择包(这里是my4.tf.com)eclips->Refactor->rename
这里改成新的包名,如:my.tf.com
c) 在Package Explorer中修改gen目录下包的名字为新的名字,如:my.tf.com
注意,在修改之前不要Clean或Build工程
更改方法同b),即通过按快捷方式F2或选择包(这里是my4.tf.com)eclips->Refactor->rename,改成新的包名,如:my.tf.com
这时会出现一个警告:
按Continue按钮,继续。
整个改动完成,可以看到java文件中的引用已经改过来: