完全更改包名称,包括公司域

Posted

技术标签:

【中文标题】完全更改包名称,包括公司域【英文标题】:Fully change package name including company domain 【发布时间】:2013-09-04 16:03:21 【问题描述】:

假设这是包名: package com.company.name。如何更改company

附:我看到了如何更改 name 而不是 company。 我正在使用 android Studio。

【问题讨论】:

我开始做一个项目,我需要把company这个词换成另一个,因为这个项目是给一个公司的。为什么使用删除键?在哪里? Android Studio Rename Package的可能重复 只需创建一个新包,然后选择要移动的类,然后将其拖放到新创建的包中,然后重构,这对我有用 【参考方案1】:

你可以这样做:

在清单文件中手动更改包名称。 单击您的 R.java 类并按 F6(重构->移动...)。它将允许您将类移动到其他包,并且对该类的所有引用都将被更新。

参考:How do I rename the android package name?

【讨论】:

【参考方案2】:

这对我有用,来自https://***.com/a/18637004/127434

另一个好方法是:首先创建一个新的包 通过右键单击 java 文件夹 -> 新建 -> 包来命名。

然后,选择所有类并将其拖到新包中。 AndroidStudio 将在任何地方重构包名。

最后,删除旧包。

【讨论】:

这部分对我有用,但它没有修复“import com.company.foo”语句。我可以通过 src/ 目录中的全局替换来完成后者。【参考方案3】:

如果您只想重命名 App 包,@Luch Filip 的解决方案效果很好。就我而言,我也想重命名源包,以免混淆。

只需要两个步骤:

    单击您的源文件夹,例如com.company.example > Shift + F6 (Refactor->Rename...) > Rename Package > 输入你想要的名字。

    转到你的 AndroidManifest.xml,点击你的包名 > Shift + F6 (Refactor->Rename...) > 输入与上面相同的名称。

第 1 步将自动重命名您的 R.java 文件夹,您可以立即构建。

【讨论】:

一切都好,除了我得到主源文件夹的“IOException:无法重命名(...)”。简单的项目,刚刚打开。 我使用 Android studio 2.1.1 。我的具体比如,一开始我有info.apachehive.cardview,我想要有net.vyhn.cardview步骤 1. 选择树视图源代码。 第 2 步。 点击 apachehive,按 Shift+F6 重构\重命名为 vyhn步骤 3. 点击 info 文件夹,按 Shift+F6 重构\重命名为 net。文件AndroidManifest.xml 自动更改。然后我运行调试,我的应用程序运行良好。【参考方案4】:

如果你的公司域名/包名很长,那就比较麻烦了。

这是我缺少的链接。您需要选择项目文件 -> 设置 -> 然后取消选中“压缩空中间类”。

【讨论】:

【参考方案5】:

下面给出四个步骤:

    点击下方的应用文件夹:

com.new25.impro。按 Shift + F6 Refactor->Rename... 重命名包并按refactor

    在那之后,查看安卓监视器。该节目随处更改该软件包名称。点击refactor

    转到模块app:change 为您输入的应用程序ID,就像那个名字一样。然后点击sync now

    现在您可以将包名称更改为您喜欢的名称。

【讨论】:

【参考方案6】:

执行此操作的最简单方法是将根应用程序文件夹从 com.example.MyApp 重命名为 com.newcompanyname.MyNewAppName,然后在您使用的任何 IDE 中将所有出现的旧路径替换为新路径。

【讨论】:

【参考方案7】:

我在整个项目中找到了另一种重命名包的解决方案:

打开包中的文件。 IntelliJ 在打开的文件上方显示文件的面包屑。 在要重命名的包上:右键单击 > 重构 > 重命名。 这会在整个项目中重命名包/目录。

【讨论】:

【参考方案8】:

我也遇到了同样的问题,这是我的解决方法:-

我想将包名称 np.com.shivakrstha.userlog 更改为 np.edu.khec.userlog强>

我选择了 shivakrstha 并按下 Shift + F6 来重命名折射并重命名为 khec

最后,在 AndroidManifest.xml 中使用相同的包名,在 build.gradle 中使用 applicationId 并且不要忘记 Rebuild Your Project .

注意:- 我尝试将 np 更改为 jp,所以我选择了 np 并按下了 Shift + F6 为 Rename Refract 并重命名为 jp,其他的也可以改。

【讨论】:

【参考方案9】:

1) 在 Android Studio 中打开项目文件夹。 2) 选择应用文件夹 -> 右键单击​​,然后选择重构。 3) 点击移动。它将询问您拥有哪个包名称类型的完整包名称,它会要求创建一个新包,是的,它会自动创建新它要求 gradlesync

【讨论】:

也许你可以添加一些截图。【参考方案10】:

要在Android studio中重命名包名,点击项目部分的设置图标,取消勾选Compact empty Middle Packages,之后包会拆分成多个文件夹名,然后在需要更改的文件夹上右击名字,点击refactor->Rename->在里面输入你要改的名字->Refactor->Refactor Directory,然后在整个项目中导入R.java文件。为我工作。

【讨论】:

【参考方案11】:

这可能会对您有所帮助 - 1)打开你的包的文件。 2) Android Studio 在打开的文件上方显示文件的面包屑。 在要重命名的包上:右键单击 > 重构 > 重命名。

【讨论】:

【参考方案12】:

当前包:com.company.name

新包:com.mycomapny.name

步骤: 1) 假设您在如下所示的屏幕上。

2) 打开项目面板并点击设置图标。

3) 取消选择 Compact Empty Middle Packages。

4) 然后你的包现在被分解成单独的部分,如下所示。

5)右击“公司”选择重构->选择重命名->重命名目录。

6) 现在您的“company”已更改为新的“mycomapny”,更改如下图所示。

7) 现在更改 AndroidManifest.xml 文件中的包名。

8) 打开应用级 build.gradle 并更改包名。

9) 您将收到无法解析符号“R”的错误。

10) 删除出现此错误的行,工作室将自动导入新的 R 文件。

11) 如果您有多个文件,请按“Cntrl+Shift+R”使用查找和替换选项

或“选择编辑->查找->在路径中替换..”

12) 选择全部替换。

【讨论】:

很好的答案,但你为什么只重命名目录?这就是为什么您使用未解决的符号 R 等遇到所有这些问题的原因。我按照您的说明进行了操作,但重命名了包而不是目录。那么我不必更改清单、R 引用等。【参考方案13】:

您好,我找到了最简单的方法。

    使用所需的包名称创建一个新项目 将所有文件从旧项目复制到新项目(old.bad.oldpackage=>new.fine.newpackage, res=>res 中的所有文件) 将旧的 build.graddle 复制到新的 build.graddle 中 将旧 Manifest 复制到新 Manifest 中 备份或直接删除旧项目

完成!

【讨论】:

这不是最可靠的方法,简单地重构就可以了,想象一下有人有更复杂的项目,有样式、尺寸、可绘制对象、库。这种方法需要很长时间。 按照我的方法一步一步来是可靠的,跟着我的方法是非常快的。忘记任何复杂性并考虑您正在从现有源创建一个新项目,然后我可以看到您不知道可绘制维度库的位置,我会向您解释,然后您必须支持我的答案。 1- 库在您的 build.graddle 旁边,因此如果您备份文件,您只需复制新 build.graddle 中的内容 2-drawables、dimens、styles 都在 res 文件夹中。因此,如果您打开了两个新/旧(包)项目,您只需拖放 有时折射比你想象的更复杂,因为我尝试过但没有成功,然后使用我的方法,一切都像魅力一样发挥作用 是的,马丁,同意这也是一种方法,而且它有效。但这不是最快的方法。感谢您的详细回答。【参考方案14】:

在 Android Studio 中,您可以这样做:

比如你想把com.example.app改成iu.awesome.game,那么:

    在您的项目窗格中,单击小齿轮图标 () 取消选中/取消选中 Compact Empty Middle Packages 选项 您的包目录现在将分解为单独的目录

    单独选择要重命名的每个目录,然后:

    右键单击它

    选择重构

    点击重命名

    在弹出对话框中,单击重命名包而不是重命名 目录

    输入新名称并点击重构

    点击底部的Do Refactor

    让 Android Studio 更新所有更改

    注意:在 Android Studio 中重命名 com 时,可能会出现警告。 在这种情况下,选择重命名全部

      现在打开您的 Gradle 构建文件(build.gradle - 通常是应用程序或移动设备)。如果尚未自动更新,请将 defaultConfig 中的 applicationId 更新为您的新包名称和同步 Gradle:

      您可能需要更改清单中的 package= 属性。

      清理并重建。

      完成!不管怎样,Android Studio 需要让这个过程更简单一些。

【讨论】:

【参考方案15】:

我已经阅读了几乎所有的答案。但我认为缺少一个。有时我可能是错的。 我已经使用了下面的方法并且它正在工作。

3 Methods to change package name in Android Studio

    选择您的右键单击重构 -> 移动。 选择将包从“你的包”移动到另一个包,然后点击确定。 会出现一个新对话框,显示多个目录对应于包“您的包”,然后单击。 输入新的包名,最后一级或姓氏除外。表示如果要将包名称重命名为“info.xyz.yourapplication”。然后输入“info.xyz”,只留下“yourapplication”。 点击重构。 新对话框,Package info.xyz 不存在。你想创建它吗?点击。 点击重构。 右键单击新包以更改姓氏。 重构-> 重命名重命名包 输入新名称并点击Do refactor。 删除所有旧包目录。 在 build.gradle 文件中更改 ApplicationId 并点击 立即同步

【讨论】:

对我来说,这是最好的答案。谢谢。【参考方案16】:

我没有更改任何包名。以下两个步骤对我有用。执行以下操作后,应用程序被安装为 NEW one ,尽管有两个应用程序具有相同的包名称。

1) 在 build.gradle 中

applicationId "mynew.mynewpackage.com"

2) 在 AndroidManifest.xml 中 android:authorities="mynew.mynewpackage.com.fileprovider"

【讨论】:

【参考方案17】:

就我而言,当我按照规定将 MainActivity 文件移动到新的包文件夹结构时……它重构了我的 AndroidManifest.xml。最后在检查了 Logcat 之后,我意识到这是问题所在,并将其从“.MainActivity”重命名为“.MainActivity”

    <activity
        android:name=".MainActivity"
        android:launchMode="singleTop"
        android:theme="@style/LaunchTheme"
        android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
        android:hardwareAccelerated="true"
        android:windowSoftInputMode="adjustResize">

【讨论】:

【参考方案18】:

Android 工作室的重构方法搞砸了。所以我手动做了,效果很好。也很简单:

-备份,以便在出现问题时可以恢复。

-在Android Studio中:打开Replace In Files,输入要替换的旧包名,然后git replace all。

-关闭 Android Studio。

-手动重命名app/src/main/java/...和app/src/test/java/...和app/src/androidTest/java/...中的目录

-打开Android Studio并清理项目,重建项目->完成!

【讨论】:

以上是关于完全更改包名称,包括公司域的主要内容,如果未能解决你的问题,请参考以下文章

是否更改 iOS 捆绑包显示名称,在用户设备上作为新应用下载?

AD域用户怎么更改账户登入名字

更改捆绑包标识符 - 获取应用程序以从头开始创建新版本

使用 ASP.net 更改 HTML 文本区域中的字体名称和大小

package.json配置详解

完全更改当前 PowerShell 会话的语言(包括文化)