Android Studio重命名包
如何在新的IDE Android Studio中重新命名包,基于intelijj?
是否有自动重构?
我想做批量重构,但我不知道如何。 我在eclipse和eclipse上工作了2年,这是一个单击操作。
在Android Studio中,您可以这样做:
例如,如果您想将com.example.app
更改为my.awesome.game
,那么:
-
在您的“ 项目”窗格中 ,单击小齿轮图标( )
-
取消选中/取消select
Compact Empty Middle Packages
选项
-
你的软件包目录现在将被分解到各个目录中
-
单独select要重命名的每个目录,然后:
- 用鼠标右键单击它
- select
Refactor
- 点击
Rename
- 在popup对话框中,单击
Rename Package
而不是重命名目录 - input新名称,然后点击重构
- 点击底部的重构
- 稍等片刻,让Android Studio更新所有更改
- 注意:在Android Studio中重命名
com
时,可能会发出警告。 在这种情况下,请select 全部重命名
- 现在打开你的Gradle构build文件 (
build.gradle
– 通常是app
或mobile
)。 将applicationId
更新为新的Package Name和Sync Gradle,如果它尚未自动更新:
- 完成! 无论如何,Android Studio需要使这个过程更简单一些。
另一个好方法是:首先通过右键单击java文件夹 – >新build – >包来创build一个具有所需名称的新包。
然后,select并拖动所有的类到新的包。 AndroidStudio将重构包名到处。
最后,删除旧的包。
完成。
还有一件事很重要
如果使用此方法,则必须手动将Android Manifest和Gradle文件更改为新的包。
这一步可以很容易地完成。 您不必触摸AndroidManifest。 而是执行以下操作:
- 右键单击项目的根文件夹。
- 点击“打开模块设置”。
- 转到Flavors选项卡。
- 将applicationID更改为所需的任何软件包名称。 按OK。
Package Name和Application ID的解耦在这里解释: http : //tools.android.com/tech-docs/new-build-system/applicationid-vs-packagename
在“ 项目”面板上右键单击包。
从上下文菜单中select重构 – >重命名。
- 转到你的AndroidManifest.xml。
- 将光标置于下面显示的包名称中,不要选中它就放置它。
- 然后按
shift+F6
你会得到一个popup窗口,如下所示select重命名包 。
- input您的新名称,然后select重构 。 (注意,因为我的光标在“某些东西”只有东西被重命名。)
就这样完成了。
我用来重命名包名的方法很简单,如下所示:
第1步 :从Android Studio的左侧菜单中select项目选项
第2步 :右键单击java并添加一个新的软件包并设置所需的软件包名称
第3步 :input新的软件包名称
第4步 :复制旧包中的所有文件并粘贴到新包中
第5步 :重命名清单文件中的软件包名称
第6步 :在build.gradle文件中重命名包名
第7步 :然后右键单击旧包,并删除它的所有数据,并删除该目录以及
第8步 :然后重build您的项目
第9步 :然后你会发现项目中的旧导入包名的一些错误在任何文件中select旧的包名,然后按 CTRL + SHIFT + R ,然后在replace框中input新的包名,然后按查找
第10步 :然后popup如下所示,并从中select所有文件选项
第11步 :重新生成你的项目,宾果你的项目包名已被改变:)
(1)
打开文件:
app >>清单>> AndroidManifest.xml
突出显示要修改的软件包名称中的每个部分(不要突出显示整个软件包名称),然后:
- 鼠标右键单击>>重构>>重命名>>重命名包
- 键入新名称并按(重构)
在包名的每个部分执行这些步骤
(2)
打开(Gradle脚本)>>(build.gradle(Modul:app))
并将applicationId更新为包名
(3)
打开菜单(build)并select(Rebuild Project)
Intelli J有一个叫做“Compact Empty Middle Packages”的选项。 select项目选项卡的选项 – 图标,并取消/激活。
请参阅: 我如何更改IntelliJ中的顶级包名称
select包将被重构,重构 – >移动 – >“将xxx移动到新包”
如果你的软件包名称是两个以上的点分隔的,说com.hello.world
,而且你没有把任何东西放在com/
和com/hello/
。 所有的类都放到com/hello/world/
,你可以按照以下步骤在Android Studio或IntelliJ中重构你的包名:
- [第一]在你的目录下添加一些东西(
com/
,com/hello/
)。 你可以通过首先将两个文件添加到com.hello.world中来实现
com.hello.world.PackageInfo1.java com.hello.world.PackageInfo2.java
然后分别将它们重构为com和com.hello。 您会在项目中看到com和com.hello(快捷键为Alt+1
或Command+1
),重命名目录重构正在等待您的预期。
-
重构重命名一个或多个这些目录来达到你的目的。 你应该注意到的唯一的事情就是当对话问你时,你必须select目录而不是软件包。
-
如果您的项目中有很多类,则需要一段时间才能等待其自动扫描和重命名。
-
此外,您需要手动重命名AndroidManifest.xml中的包名,我猜,这个文件中的其他名称可以使前缀受益。
-
[ALSO] ,它可能需要你replace所有的
com.hello.world.R
到新的XXX.XXX.XXX.R
(Command+Shift+R
) -
重build并运行你的项目,看它是否工作。 然后使用“在path中查找”来查找您想要重命名的其他非触摸名称。
- 好好享受。
我已经看到了最高票的答案,但我发现有点不同,做这个,我尝试做最完整的教程。
从Android Studio中点击齿轮图标( ),然后select"Compact Empty Middle Packages"
选项,查看以树视图分隔的文件夹。
现在select文件夹,点击右键打开上下文菜单,selectRefactor
,然后Rename
您将被build议重构包装:
然后一个窗口会显示该项目内的巧合,select"Do Refactor"
:
我们不需要手动更改AndroidManifest.xml或build.gradle文件,重构包就可以完成工作!
更新回答:2015年5月
好的,我一直在Android Studio中克隆和重命名项目,但最终我实现了它。 以下是要遵循的步骤:
- 复制项目文件夹,重命名并用Android Studio打开它
- 从资源pipe理器重命名模块目录
- 重命名projectName.iml和内容
- 重命名想法/ .name内容
- 在您的项目窗格中,点击小齿轮图标 – >取消选中“精简空中间包”
- 为新的包名重新创buildsrc目录(重命名包,“不重命名目录”)
- 在build.gradle重命名应用程序ID
- settings.gradle重命名模块
而已…
我尝试了两个顶级投票解决scheme,但发现一些问题,即使这两个工作在一定程度上。
- 列表项:新的包拖放方法留下一些不变,并产生一些不良影响
- 列表项:重命名包只更改包名的最后一部分
经过一些实验后,我发现下面的方法对我很好。
如果您只需要更改软件包名称的最后部分,请使用GreyBeardedGeek概述的方法即
在“项目”窗格中右键单击包。 从上下文菜单中select重构 – >重命名
如果您需要更改整个软件包名称,请执行以下操作。
在“项目”窗格中右键单击包。 从上下文菜单中select重构 – >移动
这将创build一个新的包文件夹(必要时),但会像以前一样保留包名的最后一部分。 如果您需要更改最后一部分,请相应地重命名。
还要注意的是,你可能需要在build.gradle,manifest和/或任何xml资源文件中修改软件包名称,如果硬编码,甚至在你的代码中。 毕竟,根据需要做同步/清理/重build项目。
人们常犯的错误是无法重命名包结构,即当com.name.android level尝试修改com.name.android到com.Renamed.android是不可能的。
为了有相同的期望的变化去一级,即com.name和这里当你重构改变它重命名。 这将始终工作
右键单击包 – >重构并更改名称。 您也可以在清单中更改它。 有时如果你改变软件包名称,但创buildapk之后,它会显示当时不同的软件包名称,请检查build.gradle文件中的“applicationId”。
我发现了另一种方法,或者在这里find了一些解决办法,特别是如果你想改变域名的话。 在Android Studio 1.4中工作。 这就是我所做的:
- 打开Manifest.xml并将包名称更改为所需内容。
- 打开您的应用程序build.gradle文件并将defaultConfig中的应用程序标识更改为与清单中相同的名称并重build项目。
- 如果仍然有问题,请打开包名下的文件,去包裹面包屑(即文件头部的包声明),并将光标设置到您想要更改的域名,然后点击“Shift + F6”,它会出来一个对话框有多个使用警告,点击“重命名包”,然后点击“重构”,它应该重命名包括R.Java文件在内的所有东西。
所以例如,如果你想重命名“com.example.app”到“com.YourDomain.app”,打开一个文件包下的要重命名,在包breadcrumbs中,将光标设置为域的“example”部分然后按Shift + F6并将程序包重命名为“YourDomain”。
希望这可以帮助 :)
我find了一个更简单的方法来解决这个问题,它也改变了生成的导入,比如com.test.testpackagechange.R
,只需要一分钟左右的时间。
你的第一步是打开Android Studio并打开replace所有窗口(Mac:cmd + shift + R,Windows我假设:ctrl + shift + R)。 input旧的软件包名称,并在新的软件包名称下面input。 点击查找。 这可能需要一段时间,因为它也在查看生成的项目。 如果它有超过1000个点击,只需点击继续。
完成后,按“全部replace”以将新的包名replace为新包名。
现在closuresAndroid Studio,然后转到Mac上的Finder或Windows上的Windows资源pipe理器。 将文件夹的名称更改为新的软件包名称,如下所示:
现在再次打开Android Studio。 Gradle将同步,您的包名称应该更改为新的。
我发现这是最容易的一个,涵盖所有领域,如生成的文件。
第一部分包括在“java”文件夹下创build一个新的包,然后select,然后将旧包中的所有源文件拖到这个新包中。 之后,您需要将Android清单中的包名称保留为新包的名称。
在步骤2中,您需要做的是。您需要更改android studio中模块“build.gradle”下的“applicationId”中的旧软件包名称,以及更改清单中的软件包名称。 总之,点击“AndroidManifest.xml”下方的“build.gradle”,并将“applicationId”的值修改为新的包名称。
然后,在最上面,在“构build”下。 清理你的项目,然后重build。 从这里应该没问题。
包有两个目的。 一种是在Google Play商店中唯一标识您的应用。 另一种是命名生成项目时生成的R.java类的包。 你可以把第一个目的看作是外部包,第二个目标是内部包。 假设您想要更改外部软件包,以便您可以在Play商店中识别,则有一种方便的方法来执行此操作。
在Android Studio中,select“文件”>“项目结构”>“select您的应用程序的模块”>单击“风味”选项卡>更改应用程序ID。 现在,当你build立你的项目,你的APK和清单将使用这个新的包名称。
我相信你在寻找的是Refactor> Move。 您也可以按F6。
你会得到两个popup窗口。 确保你select两个重命名包。 之后你会popup一个新的包名称。
请注意,如果你的包的名字是com.example.android.projectname,那么你可以把com.example.android改成别的东西。
还有一件事,这将会更新build.gradle中的applicationId。 只要确保“在评论和stringsearch”和“search文本发生”checkbox都检查它的工作。
编写新软件包名称并从旧软件包名称拖放的最佳方法。 第二种方法,如果你点击Refactor,然后移动选项,然后重命名包名,它将重命名包名,然后重build。
在Build.gradle你必须手动做,如果你重构那么它不会在Build.gradle重命名。
一定要回到Sheharyar的答案开始In Android Studio, you can do this:
因为它是伟大的。 有这么多的答案和评论后,它会很容易混淆和放弃,但不。 答案是有效的。
总之,你做三件事:
取消selectCompact Empty Middle Packages
。
Refactor
通过selectCHANGE PACKAGE ( 不是目录)来Rename
每个旧的目录节点以匹配新的包名称。 (请务必预览更改。)
编辑build.gradle
文件并使APPLICATION_ID
匹配新的软件包名称。
快速简单的方法:
1-打开MainActivity.java
或任何可用的java文件。
在顶部有包声明,如:
包com。
example
.myapp;
select要更改的包部分,然后按Shift + F6 。 我个人想改变这个example
。
在警告对话框中,select重命名包 ,然后插入所需的包名称。
2-打开AndroidManifest.xml
并在<manifest>
标签内将package
更改为所需的包名称。
3-打开build.gradle(Module: app)
并将applicationId
更改为所需的软件包名称。
- 在Java文件夹中select包名。
- Shift + F6
- 更改软件包名称并单击确定。
您的软件包名称将从所有Java文件和清单文件中更改。 您必须从build.gradle手动更改软件包名称
请尝试以下步骤:
- 点击设置齿轮图标,取消selectCompact Empty Middle Package
- 现在我们可以看到每个包文件夹被分解成几部分
- 现在右键单击第一个包文件夹>>> refactor >>> rename
- 现在会显示警告,但您继续并单击重命名包
- 之后input您的域名的包名称
- 点击“重构”
- 现在它已经改变了App的包域名。 现在根据您的要求更改域扩展名和应用程序文件夹名称
- 现在在Gradle脚本中打开build.gradle(Module:app)。 这里更改应用程序ID并单击立即同步。
*******最后它已经完成了******
我build议使用Sublime Text(或Notepad ++)。 replace… \ Projects [MyProject]中的com.one.lastname – > com.two.newname和com / one / lastname – > com / two / newname。 并且不要忘记重命名… \ Projects \ MyProject \ app \ src \ main \ java \ com \ one \ lastname,… \ Projects \ MyProject \ app \ src \ test \ java \ com \ one \ lastname和… \ Projects \ MyProject \ app \ src \ androidTest \ java \ com \ one \ lastname! 就这样:)
对于我来说,即使是在所有相关的模块中,对于我想要在包中修改的文件夹名称,即使对于更改事件也是如此,但对于我来说, 只有遵循以下步骤才能正常工作:
- A – 如果要更改根文件夹的名称(换句话说,文件夹的名称是包中主要用于包含主要活动的文件夹的名称),则可以在执行以下步骤(B到C) 之前或之后执行退出“Android Studio”并手动重命名此根文件夹。 点击“导入项目…”,然后点击项目的新名称(此导入过程将自动重新调整项目文件中的“Gradle”文件。)
- B – 在下面的C步骤之前 ,不要忘记通过在以下3个文件中更改它们来手工修改要更改的文件夹的名称:“AndroidManifest.xml”,“MainActivity.java”(或名称最终select你的第一个活动)和“build.gradle(Module:app)”文件。
- C – 按照上述步骤1至6(“在您的项目窗格中,单击小齿轮图标…”) – > https://stackoverflow.com/a/29092698/2001610
- D – 仅当您想要更改根文件夹的名称时,可以按照上述的“A”过程进行操作。
3年后的额外答案,当然,如果以前不适合你,因为“某事”。
- 转到项目path>你在哪里findjava文件和包
- 创build新文件夹,例如com> super_package>活动
- Android Studio将刷新项目结构
- 将所有的Java文件移动到新的文件夹
- 删除旧的文件夹
- 编辑>查找>replacepath:
- 将旧的软件包名称更改为新的
- 在清单中也改变并build立一个gradle
完成!
在您按照这些技术之一重新命名您的软件包之后,您可能会看到错误。
如果你的R.java得不到正确的生成,你会在你的项目中得到很多错误,说error: cannot find symbol class R
,也error: package R does not exist
。
记得检查你的应用程序清单xml。 清单包名称必须与实际的包名称匹配 。 似乎R.java是从应用程序清单生成的,如果有不匹配的话,会导致这些错误。
请记住检查<manifest package="com.yourcompany.coolapp">
的package
属性匹配
-
select选项
-
取消选中Compact Empty Middle Packages选项。
- select你想改变的目录(我select了步骤6中显示的'crl')。
- Shift + F6
- 重命名包
-
将目录crl重命名为crl1
-
最后点击下图中标记的Do Refactorbutton 在此处input代码
-
完成更改后