android - 在 Android Studio 中不重构的情况下更改 Android 包名称

标签 android android-studio

我希望能够在不重构的情况下更改我们应用程序的包名称。目的是为白标应用程序创建一个构建系统(更改 Logo 和其他次要细节以隐藏我们的品牌并强调客户的品牌)。这是当前的公司逻辑。我知道它没有得到官方支持,但我相信可以通过对构建过程进行小改动或修改来实现。

重构会留下项目中每个文件的修改日志,从而使那些时间变得毫无意义。这是一个可能的解决方案,但我认为这不是最好的。

如果更改包名称并且不重构,一切都可以正常工作,只有 R 类除外。在 Eclipse 上,我复制了 R 文件并将其重命名(当然要保持更新)。在 Android Studio 中,这是不可能的,因为我找不到 R 文件并且不了解他们的构建过程。

我知道大多数 Android 开发者都无法回答这个问题,但是有没有人有 Android Studio 构建过程的经验,请帮忙。

最佳答案

Android Gradle 插件已将“程序包名称”与应用程序的唯一标识符分离。

以前,就像与 Eclipse 和 ADT 插件一起使用的 Ant 构建系统一样,您的应用程序标识符和“包名称”是相同的,由 package 属性定义在你的 list 中。

使用 Gradle 构建系统,除了 list 中的 package 属性外,您还可以在 build.gradle 中定义 applicationId。大多数情况下,两者是相同的,但并非必须如此。

list 中的 package 属性决定了 R 类的 Java 包。如果您对应用程序的所有版本保持相同,R 类导入将不会改变。

应用程序的不同变体之间会发生变化的是 build.gradle 中的 applicationId。这是 Play 商店和 Android 设备用来唯一标识您的应用程序的内容。

有关更多信息,请参阅帖子 ApplicationId versus PackageName .

关于android - 在 Android Studio 中不重构的情况下更改 Android 包名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33244305/

相关文章:

java - RecyclerView 中的多个 View

java - 如果 Activity 被杀死,Service 会发生什么?

android - 无法导入带有 '<image>' 标签的 svg

android - 从 android studio 重新安装时未正确检测到应用程序安装时间

Android Studio - 从 GitHub checkout *分支*

java - 一加一ADB驱动安装不上

javascript - 减少反斜杠数量的 evaluateJavascript 函数

java - Android 应用程序按钮不起作用

android - OpenCV undefined reference

android - 如何以编程方式获取所有 android 应用程序 flavor 名称