解决:Android 修改 application_id 后再修改回来后无法打包运行

一、问题说明

公司项目开发中为了去测试一个东西,需要将应用 applicationId 修改掉。

具体为将 com.sample.package1 修改为 com.sample.package2。

为了做到风险隔离,我直接新开了一个 test 分支,接着将 build.gradle 中的 applicationId 修改掉,测试可以正常打包运行,但是切回原分支后却死活运行不起来,还报以下错误:

Error while executing: am start -n "com.sample.package2/com.sample.package1.MainActivity" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER
Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.sample.package2/com.sample.package1.MainActivity }
Error type 3
Error: Activity class {com.sample.package2/com.sample.package1.MainActivity} does not exist.
Error while Launching activity

回到原分支后明明包名已经回到 com.sample.package1 了,但还是提示 com.sample.package2,就感觉很奇怪。

二、问题解决

思路 1:切到 master 分支

是不是我新开发的代码对构建有影响,切换到一个比较健康的分支测试。

不行!

思路 2:clean  rebuild

是不是有一些缓存需要清理一下,然后再重新构建一下。

不行!

思路 3:在当前分支手动修改一下 build.gradle 中的 applicationId,再修改回来

先修改为:com.sample.package111

再修改为:com.sample.package1

成功 !

三、总结

可能 AS 内部有一些机制,当在 build.gradle 中手动修改的时候,构建系统会自动修改掉底层的一些东西,但直接切换分支后虽然代码变了,却无法触发这些程序。

第一次遇到这种坑,小总结一下 !

 

上一篇:Qt中的常用容器类(解释比较全面,有插图)


下一篇:排序算法