在Android Studio中使用新名称复制现有项目


Answers:


66

您指定的链接中的步骤也应适用于Android Studio。只需复制整个模块文件夹(使用文件管理器)并为其命名即可。现在打开它并使用Refactor -> Rename(右键单击要重命名的项目)重命名模块和软件包。

请参阅以获取有关在IntelliJ / Android Studio中进行重构的详细信息。


Windows 10说文件路径太长。我有周年纪念更新,并做了组策略编辑器的欺骗,以获取长文件路径。似乎资源管理器仍然无法处理长文件路径。请参阅:superuser.com/questions/1114181/...
安德鲁小号

3
我尝试了此操作,但是当我运行项目时,Android Studio正在覆盖设备上的旧应用程序。我想同时在设备上同时安装两个应用程序(用于测试chrome自定义标签)。如何强制Android Studio在设备上同时具有两个应用程序?
Locksleyu '18年

我选择了基本软件包文件夹,然后单击“重构”->“重命名”,“软件包重命名”选项出现错误,然后成功执行“文件夹重命名”选项。
伊斯梅尔·雅芙兹

还必须重构并重命名de iml文件!!!,如果不这样做,它将无法工作
JoeCoolman

43

如果您使用Gradle-不要忘记更改app / build.gradle文件中的applicationId属性。


3
这非常重要,因为我忘记了修改build.gradle文件中的applicationId并最终在Play商店中使用错误的程序包名称发布了一个应用
wenjiun 2015年

这更多是评论而不是实际答案。
未知开发人员

那是关键!
丹尼斯,

39

正如free3dom所指出的,这是应该做的:

  1. 使用文件管理器创建副本
  2. 手动编辑应用程序的build.gradle文件以更改程序包名称(您可以使用文件管理器)。
  3. 手动编辑AndroidManifest.xml以更改软件包名称。
  4. 运行gradle sync
  5. 在Android Studio中打开项目,然后重构包名称。
  6. 再次运行gradle sync。

这似乎没有任何问题。


9
我想知道您如何在Android Studio外进行Gradle同步
-erdomester

1
然后执行此操作,但是没有执行步骤4,只是打开Android Studio并导入了复制的项目。还创建了新项目时,从复制的项目中删除了.iml文件。很棒!谢谢!
2015年

@nommer你.iml在说什么?我可以在project/prjectname.iml另一处找到一个,project/app/app.iml必须删除哪一个?
Hirdesh Vishwdewa

@Veeru你能解释一下第五步吗?
Hirdesh Vishwdewa

@HirdeshVishwdewa好问题!我前一阵子记不起来了,但是我猜它是project / *。iml
nommer 2015年

31

如果您使用的是最新版本的Android Studio,则可以让它为您提供帮助。

注意:我仅在Android Studio 3.0中对此进行了测试。

步骤如下:

  1. 在项目视图中(这与屏幕左侧的捕获和结构一起提供),选择Project而不是Android
    项目的名称将位于树的顶部(与外部库一起)。
    选择您的项目,然后转到Refactor -> Copy...
    Android Studio会询问您新名称以及要将项目复制到的位置。提供相同。

  2. 复制完成后,在Android Studio中打开新项目。
    软件包仍将使用旧项目名称。
    这就是Java类软件包,应用程序ID以及使用旧软件包名称生成的所有其他内容。
    我们需要改变这一点。
    在项目视图中,选择“ Android”
    打开java子目录,然后选择主包。
    然后右键单击它,Refactor然后转到Rename
    Android Studio会警告您说多个目录与您将要重构的软件包相对应。
    点击Rename package不是 Rename directory
    完成此步骤后,您的项目现在完全使用新名称了。

  3. 打开res / values / strings.xml文件,然后更改项目名称。
  4. 不要忘记在“ Gradle Build Module:app”中更改您的应用程序ID。
  5. 最后一步是清理并重建项目,否则在尝试运行项目时,Android Studio会告诉您它无法安装APK(如果您运行了先前的项目)。
    所以Build -> Clean projectBuild -> Rebuild project
    现在,您可以运行新的克隆项目。

步骤4是我需要的,只是在复制完我认为的文件夹后才导致部署失败,复制的项目
Jim Factor

2
重要提示:如果您使用的是Google Play服务。另外,请确保更新google-services.json文件中的软件包名称。
Gihan Gamage,

感谢您的回答!一项补充:我还更新了settings.gradle中的rootProject.name。
alexx

16

这样做的目的是让我可以拥有应用商店中受广告支持的应用的第二个版本。

当前,最好的方法是不复制项目。
您可以在build.gradle文件中使用不同的样式。

 productFlavors {
        flavor1 {
            applicationId = "com.example.my.pkg.flavor1"
        }
        flavorAdSUpport {
            applicationId = "com.example.my.pkg.flavor2"
        }
  }

这样,您只有文件的副本,并且可以轻松处理差异。


14

这是nt.bas的答案和Civic的步骤9与视觉示例的结合,因为我是Android Studio的新手,花了我一段时间才能弄清目标。它已经在Android Studio 3.2.1中测试过。

  1. 在Android Studio中打开要克隆的项目。(在此示例中,旧项目名称为test5,新项目名称为test6

  2. 在左侧的文件概述窗格中,单击:项目(当前可能显示为android)。

图0

  1. 右键单击文件资源管理器窗格中的项目,然后单击“重构”>“克隆”。

图。1

  1. 将“新名称”更改为新的项目名称,然后单击“确定”。

图2

  1. 文件>打开>新窗口>选择新项目>在新项目窗口中打开。在新窗口中,等待Android Studio的底行结束/说:“ Gradle Sync Finished”。

16

17

14

  1. 在文件概述窗格中,并在鼠标右键上单击(RMB):app.java/ <您的旧项目名称(不是测试名称,不是androidTest名称,只是空白名称)>

图8

  1. 输入软件包的新名称,然后选中两个复选标记,然后单击“重构”。

图9 图10

  1. 在左下方的栏中,点击“执行重构”。

图12

  1. 打开app / res / values / strings.xml并在行中将旧项目(例如test5)的名称更改为新名称:

    <string name="app_name">test5</string>
    

图3

  1. 打开Gradle scripts / build.gradle(Module:app)并将行更改为与新项目名称相同的行:%fig4

    applicationId "com.example.a.test5"    
    

图4

  1. 黄线将出现在代码窗格的顶部,请求gradle同步。按“立即同步”。

图5

  1. 在顶部栏中,按build> Clean project。

图13

  1. 如果在左下方显示“ Gradle build complete”,则单击“ Build> Rebuild project”。

图14

图15

  1. 现在,您应该能够再次编译并运行您的项目(如果它首先起作用的话)。

1
好答案!也可以在上面的第5步中使用文件>新建>导入项目代替打开项目。那对我有用。
宇智波佐助(Sasuke Uchiha)

8

我正在按照以下步骤操作,到目前为止,它一直在工作:

  1. 照常复制并粘贴文件夹。
  2. 打开Android Studio(v3.0.1)。
  3. 选择打开现有项目。
  4. 关闭标题为“导入Gradle项目”的消息。
  5. 在Android Tab的左侧,转到:app-> java->选择第一个文件夹(您的项目文件夹)
  6. 重构=>重命名...(Shift + F6)
  7. 重命名程序包,选择两个选项-将新文件夹的名称小写。
  8. 重构
  9. 选择:在工具栏上将项目与Gradle文件同步。
  10. 构建=>清洁项目
  11. 转到应用-> res->值-> strings.xml,然后在第二行更改应用名称。

此外,如果您使用任何Google服务API(例如Maps,Firebase等),请确保删除具有旧程序包名称引用的文件(例如app / src中的google_services.json)。有关整个过程,请参考此内容。
varun

3

Android开发人员基础课程实践gitbook的附录包含复制和重命名现有项目的步骤:

https://google-developer-training.gitbooks.io/android-developer-fundamentals-course-practicals/content/zh-CN/appendix_utilities.html#copy_project


对于Android Studio 3.3来说,它非常适合我,它具有一个包含许多模块和依赖项的复杂项目。谢谢。
nat101

1
该链接即将发布:“此网站将于2019年7月31日删除。”
彼得·莫滕森

3

在Android Studio中重构包名称时,您可能需要单击包/ android / project / etc右侧的小齿轮-导航器,然后取消选中“紧凑空中间包”,以查看包名称的每个部分作为自己的目录。然后对单个目录进行重构。

如果您需要更改软件包名称的所有部分,则这一点很重要。例如,从com.example.originalproject到org.mydomain.newproject。否则,重构/重命名操作将只允许您将“ originalproject”更改为“ newproject”,并且将使“ com.example”保持不变。有一个很好的视频可以显示以下内容:https : //www.youtube.com/watch?v=dMK-RBVLeIY


2

复制项目时,您还需要从C:... \ AndroidStudioProjects(project_name)\ app \ build \ intermediates \ classes \ release ...目录中删除原始的残留中间版本(someActivity $ 4.class)文件。否则,如果您试图编译复制的项目,则几乎可以肯定新项目的构建会失败。重构无法解决这个问题。


2

我已经尝试过从nt.bas答案gnyrfta答案,这对我来说很好。

nt.bas引用答案

如果您使用的是最新版本的Android Studio,则可以让它为您提供帮助。

注意:我仅在Android Studio 3.0中对此进行了测试。

步骤如下:

  1. 在项目视图中(这与屏幕左侧的捕获和结构一起提供),选择Project而不是Android
    项目的名称将位于树的顶部(与外部库一起)。
    选择您的项目,然后转到Refactor -> Copy...
    Android Studio会询问您新名称以及要将项目复制到的位置。提供相同。

  2. 复制完成后,在Android Studio中打开新项目。
    软件包仍将使用旧项目名称。
    这就是Java类软件包,应用程序ID以及使用旧软件包名称生成的所有其他内容。
    我们需要改变这一点。
    在项目视图中,选择“ Android”
    打开java子目录,然后选择主包。
    然后右键单击它,Refactor然后转到Rename
    Android Studio会警告您说多个目录与您将要重构的软件包相对应。
    点击Rename package不是 Rename directory
    完成此步骤后,您的项目现在完全使用新名称了。

  3. 打开res / values / strings.xml文件,然后更改项目名称。
  4. 最后一步是清理并重建项目,否则在尝试运行项目时,Android Studio会告诉您它无法安装APK(如果您运行了先前的项目)。
    所以Build -> Clean projectBuild -> Rebuild project

到目前为止,您仅重命名了整个项目名称。要重命名包装名称,您需要遵循gnyrfta答案,其描述如下:

在Android Studio中重构包名称时,您可能需要单击包/ android / project / etc右侧的小齿轮-导航器,然后取消选中“紧凑空中间包”,以查看包名称的每个部分作为自己的目录。然后对单个目录进行重构。


PS:如果您有

无法完成会话:INSTALL_FAILED_INVALID_APK:拆分lib_slice_0_apk被定义了多次

只需删除appmodule的build文件夹并重建项目即可!

这样可以解决问题!


2

我正在使用Android 3.3,这对我来说是这样的:

1-选择项目视图

2-右键单击项目名称,该名称位于项目的根目录中,然后选择选项refactor -> copy,它将提示您一个窗口来选择新名称。

3-步骤2之后,Android将为您创建一个新项目,您必须使用新名称打开该新项目

4-在“ string.xml”中更改应用程序的名称,在“ app / res / values / string.xml”中

现在,有了新名称的同一个项目。现在,您可能需要更改程序包的名称,它在以下步骤中进行了描述

(可选)更改包主体的名称

5-转到“ app / java”,将有三个具有相同名称的文件夹,一个主文件夹,一个(androidTest)和一个文件夹(test),右键单击主文件夹并选择format -> rename,它将提示您警告多个目录对应于该软件包,然后单击“重命名程序包”。选择一个新名称,然后单击重构。现在,在代码视图下,这将是重构预览,单击“执行重构”

6-转到选项“生成”,单击“清除项目”,然后单击“重建项目”。

7-现在关闭项目,然后重新打开。


1
最后,不需要20分钟的解决方案!最初尝试工作时没有出现奇怪的错误。对于第5步,我只是重构->重命名了我的包。
雪人


2

在Android Studio 3.5上的要求和测试

确保您的旧项目可以与现有的android studio库一起正常使用。

  1. 复制项目目录并为新项目名称重命名文件夹,例如Br​​amara
  2. 使用Android Studio 3.5打开您现有的新项目。打开项目完成后,导航至1:Project-> Project。您可能会看到您的项目只有两个目录,分别指向新项目文件夹和旧项目文件夹。关闭您的项目。
  3. 使用文本编辑器在目录new project-> app-> appl.iml上编辑appl.iml。将所有旧项目名称替换为新项目名称。
  4. 重新打开现有的新项目。导航至1:Project-> Project。您可能会看到您的项目只有一个目录。
  5. 导航至1:Project-> Packages。右键单击您的组件->重构->重命名。
  6. 将会弹出警告信息。确保所有更改都将应用于新项目文件夹!之后,选择重命名包,例如com.dedetok.bramara。
  7. 导航至1:Project-> Android。打开应用->清单-> AndroidManifest.xml。将“应用程序活动”修复为新的包装名称。将您的应用程序名称更改为新名称。
  8. 打开Gradle Scripts-> build.gradle(模块:app),将applicationId更改为新项目,例如com.dedetok.bramara并同步项目。
  9. 清理并重建您的新项目。
  10. 您的新项目已准备好进行编辑/更改。

注意:如果未找到显示活动的adb run,请编辑“运行/调试配置”。模块应指向模块应用程序,例如app。


在第7步中,我找不到app-> manifest。因此,我打开了Project-> Project并从src文件夹中打开了清单。工作室要求同步以便编辑文件,然后就可以了
makkasi

1

最简单(也是绝对最快)的方式需要WINRAR,7zip或类似的存档软件:

  1. 在Windows资源管理器中找到项目文件夹-双击以打开该文件夹。

  2. 创建一个新文件夹并将其命名为“备份”。

  3. 仍在项目文件夹中时,选择“备份”文件夹以外的所有文件/文件夹。

  4. 右键单击并选择“添加到存档”或“创建存档”(命令将因存档软件而异)

  5. 为档案命名,然后单击“确定”。

  6. 将此存档移到“备份”文件夹。

完成-打开备份档案,打开“ Backup”文件夹,然后右键单击备份文件。选择“提取”或创建一个新文件夹,将文件提取到该文件夹​​并单击“确定”,然后像从Android Studio等正常打开该项目。


0

我有以下问题:

https://google-developer-training.github.io/android-developer-fundamentals-course-concepts-v2/appendix/appendix-utilities/appendix-utilities.html

在Android Studio版本上:3.3.2

直到我杀死了.idea / workspace.xml文件。

$ cp -rv Testcopysource/ TestCopyDest
$ rm TestCopyDest/.idea/workspace.xml
$ stdio.sh & # Run Android Studio on Linux

在此之前,Android Studio仍将指向原始源文件夹,并且所有重命名都将应用于原始源文件(在我上面的示例中的Testcopysource中)。


0

截至2020年2月,对于Android Studio 3.5.3,我发现的最简单答案是视频。

注1:在01.24,“查找”选项卡出现在下面。单击“执行重构”,然后继续按照视频中的步骤进行操作。

注意2:如果您有任何Java / Kotlin文件“标记为纯文本”,则需要手动修改顶部的软件包名称,即package com.example.thisplaceneedstobemanuallyupdated

注意3:重命名时,请注意视频中的字母大小写。

注4:如果要更新项目窗口标题栏上的项目名称,请在“ Gradle Scripts ”目录下的“ settings.gradle ”文件rootProject.name = 'YourProjectName'内进行修改。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.