【问题标题】:Import an eclipse android project with version control system into Android Studio将带有版本控制系统的eclipse android项目导入Android Studio
【发布时间】:2014-09-03 18:00:17
【问题描述】:

我正在尝试将带有版本控制系统的 Eclipse 项目导入 Android Studio。

在 Android-Studio 版本“0.5.5”中添加了对直接 eclipse 项目导入的支持,我们无需先从 eclipse 导出项目即可将其导入 Android-Studio。

我有一个 Eclipse Android 项目,我正在尝试将其导入 Android Studio。 导入成功,但导入的项目不再有版本控制。

编辑:- 更多细节

假设我有以下目录结构

Project ----
           |---------- .git/
           |----------- MyApp 
           |------------MyApp_imported

在项目导入期间,我将 Android Studio 指向项目目录“MyApp”,它将我项目“MyApp”中的所有文件复制到新目录“MyApp_Imported”。但是导入的项目没有启用版本控制。 现在我不确定如何进一步进行。 我应该如何告诉 Android Studio 将旧存储库用于导入的项目。 一步一步的指导将非常有帮助。

这是来自 Android 工具项目网站的文本

项目 - 导入模块现在应该可以正常工作了。您可以导入现有的 Eclipse ADT 项目以及 Gradle 模块到现有的 Gradle 项目中; 它将像完整项目导入一样复制源代码,以及 传递地处理依赖关系。从项目结构对话框或文件|导入模块导入模块操作。 - 新的项目结构对话框实现:应该更快,包括 Gradle 同步通知,应该只在最后执行 Gradle 同步 必要时,不会像以前一样列出无效的 IntelliJ 模块警告。
这正在积极进行中,个别编辑 (对于风味、构建类型、签名配置等)将得到改进 在即将发布的版本中。

【问题讨论】:

  • 您可能需要手动激活版本控制支持。
  • 我已经尝试了很多方法来做到这一点,但都做不到。我需要一个已经完成它的人来提供一步一步的指导。
  • “VCS -> 启用版本控制 -> Git”不存在吗?谷歌搜索“Android Studio Git”似乎给出了许多相关结果。
  • 如果我将执行“启用版本控制”,那么它将创建一个新的存储库,并且所有旧历史都将消失。我需要一种方法来保存我的 git 历史记录。
  • “启用版本控制”不会创建新的存储库(至少在已经存在的情况下不会)。它所做的只是激活 IDE 的版本控制集成。

标签: android git gradle android-studio


【解决方案1】:

导入过程并不容易。但这里有一些尝试:

让 Android Studio 做它想做的事。它会在项目的新副本的根目录中创建一个文件,该文件显示移动的位置。

制作原始 git 存储库的新(临时)副本。使用“git mv”命令复制 Android Studio 所做的目录结构更改。提交更改。

将生成的 .git 目录复制到 Android Studio 制作的项目中。在那里使用“git status”来查看导入过程的结果与您在项目的临时副本中所做的不同。此时,您可能只是选择在此处提交剩余的差异。

【讨论】:

  • IT 工作只需将旧的 .git 目录复制到新项目目录的根目录并执行 VCS->启用修订控制。我已经通过逐步解决方案添加了答案。
【解决方案2】:

这里是一步一步的解决方案。

  1. 打开Android Studio -> 导入项目-> 选择你的项目目录。 (在上述情况下为“MyApp”) 记住选择包含清单文件的目录,否则新的“直接导入向导”不会 被触发并且 android studio 使用旧的导入向导。
  2. Android Studio 将使用新目录结构创建您的项目“MyApp_imported”的副本。
  3. 在“MyApp_imported”中复制现有的“.git”目录
  4. Android Studio -> VCS -> 启用版本控制 这将使 Android Studio 使用您现有的存储库来导入项目。虽然导入的项目有 不同的目录结构,但 git 可以很好地处理它们。 您可能还需要在导入项目的根文件夹中调用 git add .git add -u,以确保添加了所有新文件并且 git 检测到现有文件移动。
  5. Android Studio -> 更改 查看所有文件并提交。 Git 会自动处理新的目录结构,文件历史等不会丢失。
  6. 现在您可以通过以下方式在 github/Bitbucket 上分享它 VCS-> 在 GitHub 上分享 注意:- 对于 bitbucket,您必须为 Android Studio 安装“Bitbucket plugin”。

【讨论】:

  • 这比我想象的要简单得多。
  • 这是什么意思“虽然导入的项目有不同的目录结构,但 git 处理得很好。”?我看到了历史,但它也表明每个文件都被“重命名”了。根据我的理解,我认为这是你能做的最好的事情,但你是说 git 如何将重命名的文件视为相同?如果是这样,我很好奇你是如何做到的。
  • 啊,你可以复制 .git 文件夹,你省了我很多麻烦!并且不要忘记分别更新 .gitignore。
  • 让它工作,在第 4 步,也做“git add”。并在新仓库的根文件夹中添加“git add -u”,然后继续执行第 5 步。
  • 对我来说,上面提到的 Johe 的附加步骤成功地导致 Git 识别出某些文件已移动。因此,在完成git add .git add -u 之后,转到 VCS->Commit Changes 并查看更改显示许多蓝色字体以及在他们说“从...移动”之后的字符串以解释文件如何感动。之前,当我尝试在不执行上述步骤的情况下提交更改时,我很确定它会将它们全部视为新文件。
【解决方案3】:

几个月前,我得到了 Android 开发人员的工作。我遇到的第一个问题是我的同事使用 Eclipse。如果我不对现有项目结构进行任何更改,我可以使用 Android Studio。经过 3- 4 次尝试我终于找到了一个决定。这里是打开 Eclipse git 项目的步骤,无需迁移到 Gradle,也无需更改项目结构。

  1. 克隆项目的 git 仓库
  2. 将 /gen 和 /.idea 添加到 .gitignore
  3. 打开任何已创建的 Android Studio 项目。
  4. 文件->打开->选择路径根项目文件夹(里面有src和res)
  5. 双击项目打开项目结构
  6. 选择根项目文件夹 -> F4
  7. 项目 -> 项目 SDK -> Android API XX 平台 && 项目语言级别 -> 在接口中覆盖
  8. 模块 -> 源选项卡。将 src 标记为 Sources,将 res 标记为 Resources。
  9. 模块 -> 路径选项卡。使用模块编译输出路径。在 gen 文件夹中创建文件夹 output 和 output_test(如果文件夹不存在,则创建 gen)。输出路径应类似于 C:\Users\User\project_rep\project\gen\output
  10. 模块 -> 依赖项选项卡。单击“+” -> jar 或目录。选择项目正在使用的所有 .jar 库。(Android Studio 可以假装它只添加了一个 jar,但事实并非如此)
  11. 构面 -> “+” -> Android
  12. 构面 -> 结构选项卡 -> 重置为默认值。
  13. 关闭项目结构窗口。
  14. 运行 -> 编辑配置 -> Android 应用程序 -> 模块 -> 选择您的模块。目标设备 -> 显示选择器对话框。
  15. 编辑配置 -> 启动前 -> 移除 Gragle 感知 make,添加 Make。

最后,完成所有这些步骤后,您就可以点击“运行”按钮了。尽情享受吧!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-21
    • 2013-09-01
    相关资源
    最近更新 更多