118

我想复制我的 Android 项目并从相同的文件创建一个新项目,但名称不同。这样做的目的是让我可以拥有应用商店中支持广告的应用的第二个版本。

我在这里找到了这个答案:

Android - 使用新名称复制现有项目

但它适用于 Eclipse。我怎样才能在 Android Studio 中做到这一点?

4

21 回答 21

75

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

有关在 IntelliJ/Android Studio 中重构的详细信息,请参阅此处

于 2013-08-20T07:39:14.513 回答
48

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

于 2015-01-05T20:18:39.143 回答
43

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

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

程序如下:

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

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

  3. 打开 res/values/strings.xml 文件,并更改项目的名称。
  4. 不要忘记在“Gradle 构建模块:app”中更改您的应用程序 ID。
  5. 最后一步是清理和重建项目,否则在尝试运行项目时,Android Studio 会告诉你它无法安装 APK(如果你运行了之前的项目)。
    那么。Build -> Clean project_ 现在您可以运行新的克隆项目。Build -> Rebuild project
于 2017-10-29T22:52:47.020 回答
41

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

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

这似乎没有任何问题。

于 2015-05-21T15:06:33.847 回答
19

这是 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/< your old project name>不是那个com.example.<your old project name>(androidTest),不是那个com.example.<your old project name>(test),只是空白的那个)

图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

    应用程序ID“com.example.a.test5”

图4

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

图5

  1. 在顶部栏中,按构建>清理项目。

图13

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

图 14

图15

  1. 现在您应该能够再次编译和运行您的项目(如果它首先工作的话)。
于 2018-12-23T17:44:38.417 回答
17

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

目前最好的方法是不复制项目。
您可以在build.gradle文件中使用不同的风格来做到这一点。

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

通过这种方式,您只有文件的副本,您可以轻松处理差异。

于 2016-03-06T16:43:28.580 回答
9

我正在遵循这些步骤,到目前为止它一直在工作:

  1. 照常复制并粘贴文件夹。
  2. 打开 Android Studio (v3.0.1)。
  3. 选择打开现有项目。
  4. 关闭将弹出标题为“Import Gradle Projects”的消息。
  5. 在 Android 选项卡的左侧,转到:app -> java -> 选择第一个文件夹(您的项目文件夹)
  6. 重构 => 重命名... (Shift + F6)
  7. 重命名包,选择两个选项 - 将新文件夹的名称用小写字母。
  8. 重构
  9. 选择:在工具栏中将项目与 Gradle 文件同步。
  10. 构建 => 清洁项目
  11. 转到 app -> res -> values -> strings.xml,然后在第 2 行更改应用名称。
于 2018-02-28T13:46:38.377 回答
6

在 Android Studio 中4.0,您只需要以下几个步骤:

  • 在文件管理器中复制项目目录并重命名新的
  • 进入其中并applicationId在里面改变app/build.gradle
  • 在 Android Studio 中打开现有的新项目
  • 打开一个类文件并突出显示要更改的包名部分(例如从com.domain.appname突出com.domain.newappname显示appname
  • 右键单击它->“重构”->“重命名”
  • 选择“重命名包”
  • 在对话框中选择“范围:所有地方”并单击“预览”或“重构”
于 2020-09-08T07:04:17.113 回答
3

转到项目所在的源文件夹。

  1. 复制项目并过去并更改名称。
  2. 打开 Android Studio 并刷新。
  3. ->Settings.gradle
  4. 包括':your new project name '
于 2015-08-25T13:10:45.943 回答
3

在 Android Studio 中重构包名时,您可能需要点击 package/android/project/etc - navigator 右侧的小齿轮并取消选中“compact empty middle packages”才能看到包名的各个部分作为自己的目录。然后对个别目录进行重构。

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

于 2016-09-20T07:47:19.787 回答
3

我已经尝试过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子目录,选择主包。
    然后右键单击它并转到Refactorthen Rename
    Android Studio 会给你一个警告,说多个目录对应你要重构的包。
    单击Rename package不是 Rename directory
    在此步骤之后,您的项目现在完全使用新名称。

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

到目前为止,您只需重命名整个项目名称。要重命名包装名称,您需要遵循gnyrfta 回答,该回答被描述为:

在 Android Studio 中重构包名时,您可能需要点击 package/android/project/etc - navigator 右侧的小齿轮并取消选中“compact empty middle packages”才能看到包名的各个部分作为自己的目录。然后对个别目录进行重构。


PS:如果你有一个

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

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

这将解决问题!

于 2018-02-27T13:20:18.073 回答
3

Android Developer Fundamentals Course Practicals gitbook 的附录包括复制和重命名现有项目的步骤:

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

于 2018-06-22T15:55:16.337 回答
3

也许这会对某人有所帮助。

对于 Android Studio 4.x 项目,您需要以下步骤:

  • 将项目目录复制到新项目目录
  • 从 Android Studio,打开新的项目目录
  • 通过更新来编辑 settings.gradle 文件rootProject.name='newProjectName'
  • 然后同步gradle
  • 到这里,项目已经准备好了,你可以开始更新清单、包、google-services.json 和所有其他东西
于 2020-10-27T22:29:52.773 回答
2

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

于 2017-10-25T00:30:55.580 回答
2

我正在使用 Android 3.3,这就是它对我的工作方式:

1 - 选择项目视图

2 - 右键单击​​项目根目录中的项目名称并选择选项refactor -> copy,它会提示您选择新名称。

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

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

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

(可选)更改包 main 的名称

5 - 进入“app/java”,会有三个同名的文件夹,一个主文件夹,一个主文件夹,一个主文件夹(androidTest)(test)右键主文件夹选择format -> rename,会提示你多个目录对应那个包,然后单击“重命名包”。选择一个新名称并单击重构。现在,在代码视图下面,这里将是一个重构预览,点击“Do refactor”

6 - 转到选项“构建”,单击“清理项目”,然后单击“重建项目”。

7 - 现在关闭项目并重新打开它。

于 2019-01-29T09:20:14.657 回答
2

Android Studio 3.5 的需求和测试

确保您的旧项目与您现有的 android studio 库一起正常工作。

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

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

于 2019-09-20T02:26:01.440 回答
1

截至 2020 年 2 月,对于 Android Studio 3.5.3,我找到的最简单的答案就是这个视频。

注 1:在 01.24,“查找”选项卡出现在下方。单击“Do Refactor”并按照视频中的方式继续。

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

注意3:重命名时要注意字母大小写,就像视频中一样。

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

于 2020-02-21T20:06:44.457 回答
1

最简单(而且绝对是最快)的方法需要 WINRAR、7zip 或类似的归档软件:

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

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

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

  4. 右键单击并选择“添加到存档”或“创建存档”(命令将根据您的存档软件而有所不同)

  5. 命名存档并单击确定。

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

大功告成 - 打开备份存档,打开“备份”文件夹并右键单击备份文件。选择“提取”或创建一个新文件夹,文件将被提取到其中并点击“确定”,然后像往常一样从 Android Studio 等打开项目。

于 2020-07-18T15:49:32.623 回答
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 中)。

于 2019-04-09T19:10:51.263 回答
0

在安卓工作室 4.1.1 中:

步骤 1 在文件资源管理器中复制项目并为其命名。

步骤 2在 android studio 中打开复制的项目,进入 Gradle Scrips 文件,在设置构建文件 中将项目名称更改为新名称。

步骤 3 转到属性Gradle 文件并添加以下行: android.overridePathCheck=true

于 2021-01-04T09:21:11.113 回答
0

最简单的方法是将项目文件上传到 Github 存储库,然后将存储库克隆或再次下载到您的计算机

于 2021-09-11T15:13:31.717 回答