我知道在SO中多次询问这个问题。我已经检查了下面发布的答案但对我不起作用:(
目前,我的应用程序的软件包名称是" com.example.test "。我想将其更改为" com。 example.test.test1 "。所以,我刚刚更改了清单文件中的软件包名称并构建了应用程序。
现在,如果我将两个应用程序单独运行,将上面的软件包名称从清单文件更改为设备,它应该向我显示不同的应用程序。它显示错误为" 失败[INSTALL_FAILED_CONFLICTING_PROVIDER] "
由于软件包名称不同,它应该向我显示设备中的不同应用程序,而不是覆盖其他应用程序。帮助我。
任何帮助都将不胜感激。谢谢
答案 0 :(得分:28)
自Android Studio V0.0.6起,packageName
属性已弃用。要更改应用程序的程序包名称,请改用applicationId
。查看release notes here。
更改applicationId和sync gradle。
答案 1 :(得分:16)
如果你的目标是在设备中的两个实例上使用相同的应用程序,那么使用gradle就很容易了。您不需要在Manifest文件中更改软件包名称,gradle将在构建过程中为您处理,并在需要时进行所有软件包重命名。
为了实现这一点,您需要在主应用程序模块的build.gradle
文件中使用不同的应用程序ID(包名称)为您的应用程序编写新的产品风格。例如。如果com.example.test
是您应用的默认包名称。您可以使用不同的包名称拥有相同应用程序的不同风格,或者知道应用程序ID。 produltFlavours可以在主模块的build.gradle文件的android标签内定义,如下图所示。
productFlavors {
app1 {
applicationId "com.example.test.test1"
}
}
进行更改后同步项目。现在从左侧面板中的Build Variant
选项卡中选择构建变体并点击运行。 Gradle脚本将为您处理所有包重命名。
检查一次以获取更多详细信息:
答案 2 :(得分:2)
对我有用的东西: 1.右键单击要在java文件夹下更改的包 2.重构 - >重命名| 3.重命名包 - >按“输入” - >按“Do Refactor”| 4.这会更新所有文件,包括清单