今天由于公司业务需要, 经理让安装两个相同的APP到手机上, 考虑到包名是应用程序的唯一标识, 所以在工程列表的app下的build.gradle里, 把applicationId改成了不同的. 然后再使用新的签名文件(也可以使用同一个签名文件)重新打包, 这样打包出来的APK就可以和其它的项目同时运行在手机上了.
但是这种方法在我华为4.4的手机上可以见效. 在7.0的华为荣耀上却不行, 安装的时候报错,安装不上. 经过搜索和排查,发现是在一些机型上只修改build.gradle里的applicationId是不行的. 还需要修改清单文件里的包名package. 要改成和applicationId里一样的. 然后在项目列表里的包名也要重命名下, 改成和applicationId一样的.这时候再重新打包, 安装到手机上, 就可以了.
具体截图如下:
一, 把工程直接复制一份, 然后导入STUDIO并打开. 然后在build.gradle里,把applicationId改成新的, 改什么随你啦.
二,在清单文件中, 把包名package修改成和applicationId里一样的内容.
此时下方的Activity可能会报错, 变红.
这时候需要再把工程左侧的包名改一下,比如你之前的包名是com.baidu.test 你需要改成com.baidu.test002, 就需要在对应的包名下手动更改下
找到对应的包, 在上边单击右键选择Refactor - rename , 输入你要更改的包名,然后再点击对话框上的 Refactor, 此时会在STUDIO下方弹出更改包名会涉及到的文件, 直接在大概左下方的位置, 还有一个Refactor, 点击, 然后就更改完毕了.
三,然后此时如果你需要更改APP的图标或者名称, 在清单文件里直接更改即可. 然后在菜单栏Build - Generate Signed APK... 里,使用新的或者之前的签名文件从新打个包, 把打包后的APK文件直接发送到手机上, 就可以安装成功了.
*** 此方法可以装多个相同的APP到手机上. 我装了三个是没有问题的.
*** 如果你使用新的签名文件打包的话, 并且你的项目中用到了比如高德地图, 友盟分享等功能, 记得要在清单文件里更改第三方的配置文件apikey之类的, 以及在第三方开放平台更改SHA1码和包名等.