如何在基于IntelliJ IDEA的新IDE Android Studio中重命名包?
是否包含自动重构?
我想进行批量重构,但我不知道如何。 我在Eclipse工作了两年,在Eclipse中工作了一次。
-
请在这里查看我的答案。 我已成功设法使用我描述的步骤重命名我的项目。
-
Android Studio上可能重复更改项目名称
-
逐步更改包名称的过程... stackoverflow.com/a/46945668/6915572
-
Sheharyar的答案按预期工作。 即1.重构2.编辑build.gradle。 但是,您还必须通过更改strings.xml文件中的app_name属性来跟进它!
-
3种在Android Studio中更改包名称的方法
在Android Studio中,您可以执行以下操作:
例如,如果要将com.example.app更改为my.awesome.game,则:
在"项目"窗格中,单击小齿轮图标()
取消选中/取消选择Compact Empty Middle Packages选项
您的包目录现在将在各个目录中分解
单独选择要重命名的每个目录,并:
-
右键单击它
-
选择Refactor
-
单击Rename
-
在弹出对话框中,单击Rename Package而不是重命名目录
-
输入新名称并点击Refactor
-
单击底部的Do Refactor
-
等一下让Android Studio更新所有更改
-
注意:在Android Studio中重命名com时,可能会发出警告。在这种情况下,请选择"全部重命名"
现在打开Gradle Build File(build.gradle - 通常app或mobile)。如果尚未自动更新,请将defaultConfig中的applicationId更新为新的Package Name和Sync Gradle:
您可能需要更改清单中的package=属性。
清洁和重建。
完成!无论如何,Android Studio需要使这个过程更简单一些。
-
我已经重构了一次,然后按照第5步进行了修改并为我工作。
-
请注意,如果您按照上述方法操作并且Google Play仍然坚持认为该软件包中包含"com.example",那么您需要更改build.gradle中的applicationId
-
谢谢!如此愚蠢,他们将此设置为默认值。为什么崩溃包,所以用户不友好它让我心烦意乱。
-
执行此操作后,build.config和R文件没有得到相应的格式化。
-
清洁和重建。
-
这个程序在Eclipse上更难看......:/
-
警告:如果在重命名"com"时选择"全部重命名",它不仅会将事物重命名为所选模块,还会将所有模块重命名为此项目
-
这并不像它看起来那么糟糕!这是一个精美的文档化程序,工作!我有371个旧包的引用,其中包括BuildConfig.java中的1个,它不会编辑,所以我没有,当我创建新的APK文件并将其上传到Google Play商店时,一切正常。您必须更改包含APPLICATION_ID的build.gradle文件。伟大的解决方案!我喜欢上面的评论,说这在Eclipse中更难看!我不知道这是否准确(我不使用Eclipse),但我希望Android Studio在包重命名方面确实比大多数海报所认为的更好。
-
第5步真的是我所缺少的
-
仅供参考:Android Studio允许您将包名称设置为大写字母,但随后会出现错误的Android Manifest错误。所以包名必须是小写字母。
-
如果我需要删除部分包裹,我该怎么办?我的意思是,从com.example.test到com.example
-
@Antonio将com.example.test中的文件拖动到com.example,然后删除com.example.test。
-
这个程序对我有用。我还必须更改AndroidManifest.xml以反映新名称。例如 - > package ="my.awesome.game">
-
你让我的生活变得轻松@Sheharyar
-
效果如此受欢迎,但清单中的某些条目未更新,特别是与 相关的条目
-
有趣的事实:如果在您的导入中使用通配符com.example.app.teeth.* AS,则不会使用新项目名称自动重命名它。但是,一个简单的构建尝试将向您显示所有警告
-
比其他建议更好,仍然需要编辑许多文件中的导入。看起来像这样一个共同的需求 - 谷歌真的应该让一个向导为这样一个共同的需要做正确的事。
-
这是最好的方法。
-
它不适用于最新的android studio 1.5.1
-
多好的答案...超级@Sheharyar ..它也适用于AS1.1.0
-
我想在AS +2.0中添加它,它会提示"only directory"/"package"选项,选择Package,它将为我们自己做"魔术"。否则它只会更改一个目录名称。
-
根据你的回答我做完之后,我最终将所有R进口替换为新进口。 Android Studio没有为我这样做。所以在我的所有文件中#import x.y.z.R;定义了,我用#import a.b.c.R替换它;之后它起作用了。
-
它在Android studio 2.1中不起作用。 Android工作室只是默默地拒绝重命名任何东西。
-
第2步很重要:)
-
精湛的答案,正是医生所要求的!
-
@Vlado - 一旦Android Studio搜索了这些用法,你真的点击了"Refactor"吗?我错过了这一步......容易错过
-
感谢您的解决方案,我仍然必须从build文件夹中的某个文件替换包手册,立即构建文件夹,并且我必须删除测试文件夹才能运行没有错误:
-
如果您不使用gradle,请在AndroidManifest.xml中更新软件包名称。
-
此外,您可能需要删除主目录中的.gradle文件夹,然后从IDE中"同步项目与gradle"。
-
注意:这不会重构AIDL文件。 (从Android Studio 2.2开始)(可能暂时不会)。但除此之外,这很棒。此外,我不确定你如何'删除'/'添加'中间的新包装部件...除了删除/添加到结束,然后重命名所有需要它的包。
-
说真的,如果你有时在西雅图,午餐就在我身上。这让我疯狂!
-
我认为该过程不简单的原因是,一旦应用程序在Play商店中,建议不要重命名您的包。
-
此方法的另一个注意事项:如果您的项目非常大,Android Studio将在此过程中冻结。
-
非常棒,谢谢。之后有R班的问题;需要在清单中进行手动包更改。
-
如果您使用的是firebase,请在google-services.json中更改您的package_name。
-
如果我想将com.example.new.app更改为com.example.app,该怎么办?
-
我仍然不明白为什么我们需要取消选择Compact Empty Middle Packages来执行此操作。这是一个AS bug吗?肯定听起来像,因为选择整个名称(以各种方式),只改变包名称的尾部。
-
此方法仍然无法重构您可能拥有的任何AIDL文件。需要使用"搜索和替换"手动更改这些内容。
-
它工作,在以后的android工作室版本中,包名称自动重构gradle和manifest文件!
-
超级感谢伙伴......它对我有用
-
我刚刚完成这个并且它不起作用(在Windows中,Android Studio无法识别更改并且Clean All / Rebuild不执行此操作也不执行refresh),我建议1)关闭android studio .. 2)导航app dir手动重命名.\src\main\java中的文件夹然后3)使用notepad++进行全局查找并将.\src\main\java中的字符串before.androidwork.com替换为after.changed.net目录
-
得到此错误Error:org.jetbrains.kotlin.kapt3.diagnostic.KaptError: Error while annotation processing请帮助
-
谢谢。真有帮助。
-
这是在互联网上找到的最佳解决方案。感谢名单
-
为什么不选择整个包名com.example.tutorial - >然后右键单击 - > Refractor - >重命名(输入 - > tutorial1)或者Refractor - > Move(输入 - > com1.example1)。只有可能需要更新gradle文件中的包名称。 *需要选择整个包名。
-
在当前版本的Android Studio中,这并不适用于所有情况。我只是尝试将"顶级域名"(如cc.example.www)从cc更改为com。重命名时(本回答中的第4步),我收到错误"无法创建文件'... / build / generated / source / r / release / com'。文件已经存在。" com目录已经存在,因为我正在将它用于其他一些包(第三方库)。我还没有看到这个错误是否在问题跟踪器中。
-
重构后我需要运行File-> Invalidate Caches / Restart ...
-
我有多模块项目,我只想重构一个模块。我可以改变用法的范围,但它只显示我的用法,我不能重构一个模块。有办法以某种方式这样做吗?
-
因为你发布我的第一个应用程序,你让我的一天好友
-
在我的情况下,第一步是隐藏空中包,感谢好友
-
它不会重构代码中的所有内容。你还是要做一些肮脏的工作。
-
这个ALMOST工作,但由于某种原因,我在我的app> source> androidTest目录中出错。在"ExampleInstrumentedTest"中,我无法导入:import android.support.test.InstrumentationRegistry; import android.support.test.runner.AndroidJUnit4;我收到了"无法解决符号"的错误。知道为什么吗?
-
很长且容易出错的方法
-
我的问题是:如果要删除一个包名称层,该怎么办:从com.example.app到example.app?我陷入了第4步。
-
这是节省时间,非常感谢你
-
我在任何地方都看不到"DO Refactor"
-
@johnktejik这是:i.stack.imgur.com/ueUQV.png
-
我重命名了com目录,它需要很长时间..嗯
-
你怎么能重构,如果你的实际包是level1.level2.level3.leve4并且我想设置levelx.levely.levelz,那么级别的差异,只有3,在4之前,谢谢!
-
如果您正在使用任何外部服务,请检查可能与先前软件包名称相关的任何密钥限制。例如,我在Google地图上遇到了这个问题,在我更改了包名后,这给了我一张空白地图。我只需更改密钥限制即可在Google控制台上使用新的软件包名称。
-
小心!如果您使用谷歌分析json,然后更改该json文件中使用的包名称。
-
谢谢。为我工作。
-
你六年前写的答案只是在我脸上露出笑容。谢谢。顺便问一下,现在有更好的方法吗?
另一个好方法是:首先通过右键单击Java文件夹→New→Package创建一个具有所需名称的新包。
然后,选择并将所有类拖到新包中。 Android Studio将在任何地方重构包名称。
最后,删除旧包。
完成。
很重要:
如果使用此方法,则必须手动将AndroidManifest.xml和build.gradle文件更改为新包。
-
如果您使用此方法,则可能需要更新Android Manifest文件以引用新包。虽然非常简单,但解决方案很棒。
-
您可能必须重新启动Android studio才能更新.idea / workspace.xml
-
您还可能需要更改build.gradle以反映新包
-
这有效,但是当我重新启动时,在Recent Projects下,它仍然按名称列为旧名称,即使ti指向,打开并作为新的重复版本运行。您如何更改最近项目中列出的方式?
-
谢谢,这很有效。令人尴尬的是Android Studio无法做一个简单的Refactor - > Rename。
-
当他说要??创建一个新包时,我发现如果你使用资源管理器在正确的位置添加新文件夹,然后在文件夹中移动它可以正常工作。令我印象深刻!!这是魔术。
-
好的方法,但不得不做两件事(除了更新清单文件)使其完全工作,首先必须更改/重命名整个项目中的R文件导入,其次appdebug使用旧包名称(在工作室的运行窗口中可见) )在app build.gradle defaultconfig中添加了applicationId"com.packagename"..
-
除了@baboo所做的,在build.gradle文件中我更改了applicationdId以反映我更新的包名。
-
这与"好"解决方案完全相反......
-
@baboo为了使第一部分更容易,您可以通过按Ctrl + Alt + O并选择所有文件,然后单击运行来优化整个项目的文件导入。如果您有许多活动和其他具有R文件导入的类,这将特别有用。
-
这很棒,只需要更新清单然后再建立 - >清洁项目
-
@ user462990测试包如何使用你的方法进行折射
-
执行此操作后,只需使用新的代码目录查找并替换旧的包名称,然后在build.grandle中更改applicationid即可。
-
最简单的解决方案它适用于Android Studio 1.5.1
-
谢谢 - 致力于Android Studios 2.0测试版
-
对于你有很多软件包和类的大项目来说,不是最好的选择,你必须重新导入所有这些
-
我没有测试它,但它看起来也是一个不错的解决方案。
-
获取此错误错误:org.jetbrains.kotlin.kapt3.diagnostic.KaptError:注释处理时出错请帮忙
-
如果您在xml中引用了自定义类,则需要将其更改为。
-
这对我有用,因为接受的答案只解释重命名,而不是解释在两者之间添加新文件夹
-
谨防。此方法不会重构在Kotlin文件中声明的包。
-
这减少了努力.Nice解决方案。
-
我正在使用Android Studio,这对我有用。一些警告:
-
我正在使用Android Studio,这对我有用。一些警告:(1)如果您使用的是Subversion,请确保在工作空间中提交任何更改,并在开始此过程之前对工作空间进行Subversion更新。 (2)我的项目是混合Java / Kotlin。在我这样做之后,似乎我仍然有很多仍然引用旧包名称的import语句(它不再存在,因此导致编译器错误)。我刚刚对这些旧的包引用进行了全局查找/替换(右键单击Android Studio中的Project Node并选择"Replace in path ...")。
-
我必须在每个活动中手动更改R import,并且还需要更改一些静态字段导入
-
这应该是正确的答案!!
-
这么简单,那么好。只需要修理一些东西......一切正常。为什么Android Studio不能单独使用?
-
添加到@baboo注释,我们可以通过在任何一个类中选择包名来按ctrl + shift + R直接重命名整个项目中的R文件导入
更改应用程序ID(现在独立于程序包名称)可以在一个步骤中轻松完成。
您无需触摸AndroidManifest。
而是执行以下操作:
右键单击项目的根文件夹。
单击"打开模块设置"。
转到Flavors选项卡。
将applicationID更改为您想要的任何包名称。按
请注意,这不会更改包名称。这里解释了包名称和应用程序ID的分离:
http://tools.android.com/tech-docs/new-build-system/applicationid-vs-packagename
-
这只会改变gradle中的名称,而不是其他地方。
-
@Jacob R.这就是最重要的。 gradle中的包名称胜过其他名称。
-
这是一个圣杯的答案!很聪明!
-
这需要被选为正确的答案,因为它是非常简单和快速的方式。
-
这不适合我
-
这需要被接受,其他答案很长,你不能使用其他答案将com.example.sample更改为com.example
-
它没有更改我的清单文件中的包ID ...嗯我在这里缺少的东西?
-
更新:这是有效的,但清单文件中的包如何? Android工作室不使用?
-
@mboy gradle中的名称只是重要的,因为它胜过清单中的名称。
-
@hwat使用此方法更改包名后一切正常,除了context.getPackageName() ..它无法识别更新的包名称..任何提示?编辑:在这里找到答案 - tools.android.com/tech-docs/new-build-system/…
-
仍然需要手动更新项目和Manifest中的每个文件。太痛苦了。
-
@Frank你不需要这样做。请阅读上面对雅各布的评论。
-
这是正确的答案。在最短的时间内像魅力一样工作
-
这是最有效,最快捷的方式
-
希望它有效,没有目录更改,我找不到的任何文件都没有更新。是的,它确实构建了。似乎没有解决方案可以轻松更改"com.foo1.foo2.foo3""com.newname"。 Refactor也不处理这种情况。看起来最好更改目录,然后在Android Studio之外进行搜索和替换。 Eclipse非常简单。
-
@Frank请参考我对Jacob的评论。这会更改gradle中的名称,该名称胜过其他文件中的其他名称。
-
不适合我。
-
库不能以这种方式改变他们的应用程序。
-
它确实更改了包名称,但随后应用程序崩溃并出现此错误消息unable to resolve virtual method 8734: Ljava/util/Locale;.toLanguageTag ()Ljava/lang/String;有关如何解决此问题的任何想法?
-
这很简单而且非常重要。我需要上传到Playstore,这是区分应用程序的方式,即免费,专业等...更多信息:developer.android.com/studio/build/application-id.html
-
这是迄今为止最好的建议。我遇到了一个问题,我必须使用不同的包装名称更新我的旧应用程序,我只需要更改应用程序ID!惊人的提示,谢谢!
-
我必须加入合唱团,赞扬这个答案。我正在将我的免费游戏应用程序更改为.99应用程序,这比搞乱重构要简单得多,后者从未完全适用于我的复杂项目。唯一的问题是必须用新创建的Firebase数据库替换json文件。这不会改变那里的应用程序ID,这是预期的。如果您使用Firebase,则在执行此操作之前,您将无法找到应用程序ID错误。
-
如果您要更改包名称以上传到Playstore,这适合您。
我用来重命名包名的方法很简单如下: -
步骤1
:从Android Studio的左侧菜单中选择"项目"选项
第2步
:右键单击java并添加一个新包并设置所需的包名称
第3步
:输入新的包名称
第4步
:复制旧包中的所有文件并粘贴到新包中
第5步
:重命名清单文件中的包名称
第6步
:重命名build.gradle文件中的包名称
第7步
:然后右键单击旧包并删除它的所有数据,并删除该目录
第8步
:然后重建您的项目
第9步
:然后,您将在项目中找到旧导入包名称的一些错误
在任何文件中选择旧包名称,然后按CTRL + Shift + R,在替换框中输入新包名称,然后按查找
第10步
:然后弹出如下所示,并从中选择所有文件选项
第11步
:重新建立你的项目,bingo你的项目包名已被更改:)
-
在Android工作室2.3.3中,替换In Path不再可用tru Shift + R,突出显示旧路径,转到编辑 - >查找 - >替换路径。还要确保更新您的gradle文件。干杯
-
旧包名没有出现任何错误。所以,在第9步之后没有做任何事情。谢谢!
-
如果您没有收到任何错误,请不要再执行第9步
-
错误:任务':app:compileDebugAidl'的执行失败。 > java.io.IOException:com.android.ide.common.process.ProcessException:
转到AndroidManifest.xml文件。
将光标放在包名称中,如下所示。不要选择它,只需放置它。
然后按Shift + F6你会得到一个弹出窗口,如下图所示
重命名包。
输入新名称,然后选择"重构"。
(注意,因为我的光标在"某物"上,所以只重命名了。)
就是这样。
-
感谢您使用Android Studio 1.5.1自动更改软件包无需创建新软件包并拖放文件并删除旧软件包Blah Blah Blah
-
@Prince Jayakumar,你的'不要选择它只是放置它'的说法令人困惑。只需放置鼠标光标,shft + f6就不起作用。如果插入符号在文件中的其他位置,那么您必须单击包名称,然后shft + f6将起作用
-
更改包名称的最简单方法!
右键单击项目面板上的包。
从上下文菜单中选择Refactor - > Rename。
-
这对我很有用,也不得不更新AndroidManifest文件。
-
Refactor> Rename只允许我重命名包的最后一部分,例如com.example.mypackage.app中的应用程序
-
我是这样做的,但现在它说发布时不存在类。你是怎么改名的?
-
我使用了"Refactor"主菜单并单击"重命名"。
-
@GilliMonsta您可以在右侧面板单击设置中选择您的应用程序文件夹,然后取消选中Compact Empty Middle Packages
打开文件:
app→manifeststs→AndroidManifest.xml
突出显示要修改的包名称中的每个部分(不要突出显示整个包名称),然后:
-
鼠标右键单击→重构→重命名→重命名包
-
输入新名称并按(重构)
在包名称的每个部分中执行这些步骤。
打开(Gradle Script)>>(build.gradle(模块:app))
并将applicationId更新为您的包名称
打开菜单(构建)并选择(重建项目)。
-
我试过这样做,我遇到了麻烦。我正在尝试将com.example.android.package更改为我自己的域(以.net结尾)。我可以改变'example'和'package',但我不能改变'com'。它也不会重命名任何目录。有小费吗?
-
@RobertRose,我有一个解决你的问题的方法。你还在努力吗?
-
我把它放在一边然后继续离开它。这不是生产。为了将来参考,您提出了什么?
-
如果我有"xxx.mydomain.com"类型的包,第一个不起作用)
-
美丽。第二步是必不可少的,通常在大多数答案中都会查看。
选择要重构的包。重构→移动→"将xxx移动到新包"。
-
这是简单的方法
-
不起作用,将我的包从"com.company.oldname"更改为"com.company.newname.oldname"。看到?此方法不允许更改名称的最后一个组件(我尝试了几次)。
IntelliJ IDEA有一个名为"Compact Empty Middle Packages"的选项。选择"项目"选项卡的选项图标,然后取消激活它。
请参阅:如何在IntelliJ IDEA中更改顶级包名称?
-
这很有用。在"停用"此功能后,事情变得更加清晰,我可以删除空的包
-
@ChrisNevill你怎么删除那些空包好吗?
-
我想我刚刚选择了它们并按下删除。我现在无法重现这个问题所以不能完全记住它。
-
我同意,这真的很有用。应该包括在我看过的关于这个主题的所有不合标准的答案中。
我已经看到了最高投票的答案,但我发现这样做有点不同,我尝试做最完整的教程。
在Android Studio中单击齿轮图标(),然后选择选项:"Compact Empty Middle Packages",以查看在树状视图中分隔的文件夹。
现在选择文件夹,单击右键打开上下文菜单,选择Refactor然后选择Rename
建议您重构包裹:
然后一个窗口将显示proyect内部的巧合,选择"Do Refactor":
我们不必手动更改AndroidManifest.xml或build.gradle文件,重构包将完成工作!
如果您的包名称超过两个点分隔,例如com.hello.world,而且您没有在com/和com/hello/中放置任何内容。您的所有类都放入com/hello/world/,您可以按照以下步骤在Android Studio或IntelliJ中重构您的包名称:
-
[FIRST]在目录下添加一些内容(com/,com/hello/)。您可以
通过首先添加两个文件到com.hello.world包来实现这一点
1 2
| com.hello.world.PackageInfo1.java
com.hello.world.PackageInfo2.java |
然后分别通过将它们移动到com和com.hello来重构它们。
您将在项目中看到com和com.hello(Alt+1
或Command+1表示快捷方式)并重命名目录重构
像你期待的那样在那里等
-
重构以重命名这些目录中的一个或多个以达到您的目标。你应该注意的唯一事情是当对话框问你时你必须选择目录而不是包。
-
如果您的项目中有很多课程,则需要一段时间才能等待其自动扫描和重命名。
-
此外,您需要手动重命名AndroidManifest.xml中的包名称,我猜这个文件中的其他名称可以使前缀受益。
-
[ALSO],可能需要将所有com.hello.world.R替换为新的XXX.XXX.XXX.R(简称Command+Shift+R)
-
重建并运行您的项目以查看它是否有效。并使用"在路径中查找"查找您要重命名的其他非触摸名称。
-
好好享受。
一定要去Sheharyar的伟大答案。随之而来的答案和评论很多,很容易让人感到困惑和放弃,但事实并非如此。那个答案有效。
简而言之,你做了三件事:
(1)取消选择Compact Empty Middle Packages。
(2)Refactor然后Rename每个旧目录节点选择Change Package(不是Change Directory)以匹配新包名称。 (务必预览更改。)
(3)编辑build.gradle文件并使APPLICATION_ID与新包名匹配。
-
真正贬低这一点的人缺少一些东西,因为我的答案是Sheharyar的答案的概要,因为它看起来如此复杂(它不是),所以我所做的就是简化它。一些短视,触发快乐的人的神经。愿意看到downvote的原因。毫无疑问,我不会看到它。
-
好。从3.5年后的今天开始,我可能会看到为什么暗示投票可能已被投出,因为它可能不是很完全清楚(但是减少了一些!),但现在肯定是,感谢@Peter Mortensen的两天-old编辑和我的刚才。
我找到了另一种方法,或者在这里解决了一些额外的步骤,特别是如果你想改变域名的话。它适用于Android Studio 1.4。这就是我做的:
打开Manifest.xml并将包名更改为您想要的名称。
打开app build.gradle文件,将defaultConfig中的Application Id更改为与manifest中相同的名称,然后重建项目。
如果还是个问题,请打开包名称下的文件,转到包breadcrumbs(即文件头部的包声明)并将光标设置到要更改的域并点击"Shift + F6",它会出来使用带有多个使用警告的对话框,单击"重命名包",然后单击"Do Refactor",它应重命名包括R.Java文件在内的所有内容。
因此,例如,如果要将"com.example.app"重命名为"com.YourDomain.app",请打开要重命名的包下的文件,在包breadcrumbs中,将光标设置为域的"示例"部分并点击Shift + F6并将包重命名为"YourDomain"。
可以犯的常见错误是无法重命名包结构,即当尝试在com.name.android级别进行修改时,无法将com.name.android更改为com.Renamed.android。
为了获得相同的所需更改,请升级一级,即com.name,此时重构时将其更改为Renamed。这将始终有效。
更新回答:2015年5月
好吧,我一直在努力克隆和克隆在Android Studio中重命名项目,但最后我实现了它。以下是要遵循的步骤:
复制项目文件夹,将其重命名为&用Android Studio打开它
从资源管理器重命名模块目录
重命名projectName.iml和内容
重命名idea / .name内容
在"项目"窗格中,单击小齿轮图标 - >取消选中"Compact Empty Middle Package"
重构新的包名称的src目录(重命名包,"不重命名目录")
在build.gradle中重命名应用程序ID
settings.gradle重命名模块
而已...
我找到了一种更容易解决这个问题的方法,它也改变了生成的导入,如com.test.testpackagechange.R,只需要大约一分钟。
您的第一步是打开Android Studio并打开替换所有窗口(Mac:cmd + shift + R,Windows我假设:ctrl + shift + R)。输入旧包名称和新包名称下面的名称。单击查找。这可能需要一段时间,因为它也在查看生成的项目。如果它有超过1000次点击,只需单击继续。
完成后,按"全部替换"将旧包名替换为新包名。
现在关闭Android Studio并转到Mac上的Finder或Windows上的Windows资源管理器。将文件夹的名称更改为新的包名称,如下所示:
现在再次打开Android Studio。 Gradle将同步,您的包名称应更改为新的名称。
我发现这是最容易的,也是覆盖生成文件等所有领域的。
在Java文件夹中选择包名称。
Shift + F6
更改包名称,然后单击OK。
您的包名称将从所有Java文件和清单文件中更改。您必须从build.gradle手动更改包名称。
-
如果Shift + F6不适合你,那么你可以尝试Alt + Shift + R来重构包。其余的程序是一样的
我尝试了两个最高投票的解决方案,但发现了一些问题,尽管两者都有一定的作用。
-
列表项:新的package-drag-drop方法保留一些不变并产生一些不需要的效果
-
列表项:重命名包仅更改包名称的最后部分
经过一些实验,我发现以下方法对我来说效果很好。
如果您只需要更改包名称的最后一部分,请使用GreyBeardedGeek概述的方法,即
在"项目"窗格中右键单击该包。从上下文菜单中选择Refactor - > Rename
如果需要更改整个软件包名称,请执行以下操作。
在"项目"窗格中右键单击该包。从上下文菜单中选择Refactor - > Move
这将创建一个新的包文件夹(必要时),但将像以前一样保留包名的最后一部分。如果您需要更改最后一部分,请相应地重命名。
另请注意,您可能需要修改包名称,例如: build.gradle,manifest和/或任何xml资源文件,甚至在硬编码的代码中。毕竟,根据需要执行同步/清理/重建项目。
3在Android Studio中更改包名称的方法
我认为这是一个新的。我尝试了它,它正在工作。如果以上不适合你。试试这个。我上面提到的网站,图像教程还有其他两种方法。我也检查过。
首先,我将谈谈更改包名称。在此示例中,我们将包名称"com.androidride.myapplication"更改为"info.xyz.yourapplication"。
右键单击要更改的包名称,然后选择"重构" - >"移动"。
将出现一个新对话框,选择将包"com.androidride.myapplication"移动到另一个包中,然后单击"确定"。
出现警告对话框,单击是。
在新对话框中输入新包名称。但只有"info.xyz"留下你的应用。
现在您将看到一个警告对话框,说包info.xyz不存在。你想创造它吗?点击是。
单击"Do Refactor"。现在您的包名称已更改为info.xyz.myapplication。
右键单击info.xyz.myapplication并重构 - >重命名。
单击重命名包。
重命名对话框:将myapplication更改为您的应用程序。
单击Do refactor。
删除旧的包名称目录并在build.gradle中更改应用程序ID,将其更改为info.xyz.yourapplication。
就这样。
右键单击包 - >重构并更改名称。
您也可以在清单中更改它。有时,如果更改包名称,但在创建.apk文件后,它会显示不同的包名称。那时检查build.gradle文件中的"applicationId"。
我相信你要找的是Refactor> Move。您也可以按F6。
你会得到两个弹出窗口。确保在两者上选择重命名包。之后,您将弹出一个新的包名称。
请注意,如果您的软件包名称是com.example.android.projectname,那么这将允许您将com.example.android更改为其他名称。
还有一件事,这将更新build.gradle中的applicationId。只需确保选中"在注释和字符串中搜索"和"搜索文本事件"的复选框,以使其正常工作。
-
转到项目路径>您找到Java文件和包的位置
-
创建新文件夹,例如com→super_package→activities
-
Android Studio将刷新项目结构
-
将所有Java文件移动到新文件夹
-
删除旧文件夹
-
菜单编辑→查找→替换路径:
-
将旧包名称更改为新包
-
在清单和构建gradle中也进行更改
完成!
-
第一部分包括在java文件夹下创建一个新包,然后选择然后将所有源文件从old package拖动到此new package。之后,您需要remane android manifest中的包名称为新包的名称。
-
在第2步中,您需要执行以下操作。除了更改manifest中的软件包名称外,您还需要更改android studio中模块build.gradle下的applicationId中的旧软件包名称。总而言之,单击"AndroidManifest.xml"下面的build.gradle并将applicationId的值修改为新的包名。
-
然后,在最顶层,build下。 clean您的项目,然后rebuild。从这里开始应该没问题。
最好的方法是编写新的包名称并从旧包名称中拖动。
第二种方法,如果单击Refactor然后移动选项然后重命名包名称,它将重命名包名称,然后重建。
在Build.gradle中你必须手动完成,如果你重构,那么它将不会在Build.gradle中重命名。
ctrl + Shift + R一直对我有用。
只需replace all并选择All Files。
如何将com.example.app重命名为com.android.app:
在包com.example.app中选择示例
Shift + F6
选择rename package
将示例重命名为android
确认do refactor
请尝试以下步骤:
单击设置齿轮图标并取消选择Compact Empty Middle Package
现在我们可以看到每个包文件夹都被分成几部分
现在右键单击第一个包文件夹>>> refactor >>>重命名
现在将显示警告但您继续并单击重命名
包
之后输入包名称的域名
点击'Do Refactor'
现在它已经更改了App的包域名。现在改变了
域名扩展和App文件夹名称根据您的要求
现在在Gradle Scripts中打开build.gradle(Module:app)。在这里改变
应用程序ID,然后单击立即同步。
*******最后它完成了******
按Ctrl + Shift + R
用新的包替换旧包。
右键单击包名称。
Refactor> Rename并重命名为新的
我建议使用Sublime Text(或Notepad ++)。在... 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!
就这样:)
快速简便的方法:
1- open MainActivity.java或任何可用的java文件。
在顶部有包装声明,例如:
package com.example.myapp;
选择要更改的包部分,然后按Shift + F6。我个人想要改变example。
在警告对话框中,选择"重命名包",然后插入所需的包名称。
2-打开AndroidManifest.xml并在标签内将package更改为所需的包名称。
3-打开build.gradle(Module: app)并将applicationId更改为所需的包名称。
转到AndroidManifest.xml
在那里你会发现package作为manifest标签的属性。
只需选择要更改的部分,
右键单击 - >重构 - >重命名
也许早些时候它很难,但截至今天它已经不复存在了。
您可能还想更改应用ID
1 2 3
| defaultConfig {
applicationId
} |
简短&甜
-
每个人都有的问题是:我们是否还必须取消选择Compact Empty Middle Packages并更改每个(目录)名称。例如,如果要将包名称从com.test.app更改为in.myapp.test?
选择选项
取消选中Compact Empty Middle Packages选项。
选择要更改的目录(我已选择步骤6中显示的'crl')。
Shift + F6
重命名包
将目录crl重命名为crl1
最后点击下面图片中标记的Do Refactor按钮
在此处输入代码
完成更改后
包有两个目的。一种是在Google Play商店中唯一标识您的应用。另一种是为构建项目时生成的R.java class命名包。您可以将第一个目的视为外部包,第二个目标视为内部包。假设您要更改外部程序包以便在Play商店中进行识别,则可以通过这种方式进行操作。
在Android Studio中
1 2
| choose File -> Project Structure -> Choose your app's module -> Click on the
Flavors tab -> change the Application id. |
现在,当您构建项目时,
您的APK和清单将使用此新包名称。
Right Click on the Package name -> Refractor ->Rename -> enter the name of the package ->Click"Refractor".
Do not edit any of the build files except"build.gradle" under the"app" folder.
从重命名android工作室项目 - Vishnu Sivan
要在Android studio中重命名包名称,请单击项目部分中的设置图标并取消打开Compact empty Middle Packages,然后将包拆分为多个文件夹名称,然后右键单击需要更改名称的文件夹,单击refactor-> Rename->在 - > Refactor - > Refactor Directory中键入要更改的名称,然后在整个项目中导入R.java文件。为我工作
在您使用其中一种技术重命名包后,您可能会开始看到错误。
如果/当您的R.java没有正确生成时,您的项目中会出现很多错误error: cannot find symbol class R和error: package R does not exist。
请记住检查您的应用程序清单xml。清单包名称必须与实际包名称匹配。看起来R.java是从Application Manifest生成的,如果不匹配会导致这些错误。
请记住检查中的package属性匹配项
这对我来说非常好,即使是在所有相关模块中更改了我想要在包中修改的文件夹名称,但对我来说,只有在我完全遵循以下步骤时它才能正常工作:
-
A - 如果要更改根文件夹的名称(换句话说,文件夹的名称在包中正常使用以包含主体活动),您可以在以下步骤(B到C)之前或之后执行以下操作:退出"Android Studio"并手动重命名此根文件夹。单击"导入项目...",然后单击项目的新名称(此导入过程将自动使用项目文件重新调整"Gradle"文件。)
-
B - 在接下来的C步骤之前,不要忘记通过在以下3个文件中更改它们来手动修改要在包中更改的文件夹名称:'AndroidManifest.xml','MainActivity.java'(或者你的名字)最终选择第一个活动)和'build.gradle(Module:app)'文件。
-
C - 按照上述步骤1至6("在您的项目窗格中,单击小齿轮图标......") - > https://stackoverflow.com/a/29092698/2001610
-
D - 仅当您想立即更改根文件夹的名称时,您可以按照"A"过程进行操作,如上所述。
如果您的包以mypackageold.something.test开头,则无法更改为mypackagenew.somethingnew.testnew。
在这种情况下,如果我按照上面接受的答案步骤,结果将是mypackageold.somethingnew.testnew。
只有当您的包以com....开头到新包时,上面接受的答案才有效。
因此,如果您想从根级别更改包
更改清单中的必需包名称,
在Android标签下删除旧包和Crate New Package,
将所有文件从旧包拖到新包中,
在Manifest内部还会更改这些文件的包名称,
清洁项目,
打开build.gradle并更新applicationId。
-
首先,您需要转到左侧出现的设置图标。单击该下拉列表并取消选中Compact Empty Middle Packages
转到您的AndroidManifest.xml
选择所有包,然后右键单击
重构然后重命名你想要的。
然后转到build.gradle,然后使用在Android Manifest中拥有的packagename更改Applicationid。
这对我有用
我需要运行File-> Invalidate Caches / Restart ...来删除原始包的残余
例如,如果您想将com.example.a中的包更改为com.example.b
1)将项目样式文件夹从android更改为包(在项目端)
2)右键单击文件夹顶部,然后单击路径中的替换
3)在项目按钮中选择
4)在第一个输入中写入com.example.a
5)在第二个输入中写入com.example.b
6)当你看到警告时选择replace all来替换值
完成替换后,您可以看到您的包名称是com.example.b
给出了很多答案,但我仍在试用......
步骤1 :
如上图所示选择设置选项...
第2步:
选择Compact Middle Packages选项......
第3步:
现在展开包,如图所示
第4步:
扩展之后会看起来像
第5步:
选择子包上的任意内容(在或示例或googledevsmsverify中),然后单击Shift + f6按钮...
我选择了中间包示例,因此它将显示如上图
简单地重命名包,然后单击重构按钮
第6步:
单击Refactor按钮后,您将看到以下屏幕,单击DO Refactor并等待直到构建gradle ...
第7步:
转到build.gradle(Mobile:app)并更改applicationID的包名称,如图所示
第8步:
只需检查manifest.xml文件中的包...
所有完成的包裹都在改变...... @Ambilpura
还有一个很好的键盘快捷键只需单击n选择要重命名的Class / Package并按ALT +两次R 或Shift + F6
这反映了:Android Studio中的 - > Refactor菜单和Rename功能。重命名现有包后,它显示在底部,其中reflection / rename的效果如果单击Refector按钮,它将更改Class name / Package name在整个项目中使用的位置。
这很容易做到。只需按照两个步骤:
右键单击根文件夹,然后单击打开模块设置。
在此之后转到flavor选项卡并根据需要更改应用程序ID。
对于那些认为这只会改变build.gradle文件中的应用程序ID的人:
它是由谷歌写的
The final package that is used in your built .apk's manifest, and is the package your app is known as on your device and in the Google Play store, is the"application id".
和
The package that is used in your source code to refer to your R class, and to resolve any relative activity/service registrations, continues to be called the"package".
您可以在http://tools.android.com/tech-docs/new-build-system/applicationid-vs-packagename上阅读更多内容。