【问题标题】:Android Studio: Why does my New project contain 2 modulesAndroid Studio:为什么我的新项目包含 2 个模块
【发布时间】:2013-05-17 21:28:06
【问题描述】:

在一个新的 Android Studio 项目中,当我查看项目结构时,有 2 个模块。一个是“ProjectName”,另一个是“ProjectName-ProjectName”。我在创建项目时是否做错了什么?

【问题讨论】:

  • 你在 ADT 中的项目结构是什么?
  • 这是 Android Studio 中的一个全新项目。添加了截图
  • 这是 Gradle 的默认结构。有一个顶级项目(测试),其中您将有子项目(测试等)。查看您的 settings.gradle - 它应该显示以下内容:include ':testing'

标签: android intellij-idea android-library android-studio


【解决方案1】:

在创建新项目时,我们总是会创建一个包含单个模块的顶级项目。 Studio 或 IntelliJ 将同时显示在模块列表中,但顶部的(“测试”)无论如何都不会输出。

我们这样做而不是根项目中的平面结构,这样您以后就可以轻松地添加新模块(如库),而无需转换项目的结构。

重要的是“testing-testing”模块(我们可能会在某个时候重命名这个“testing-main”)。另一个模块不做任何事情。如果你看它的 build.gradle 它是空的,而另一个声明了一个 Android 项目。

【讨论】:

  • 太棒了!非常感谢您的详细描述。
  • 等等,这实际上是设计使然吗?我一直在与 IntelliJ 斗争,试图追踪对这个顶级项目的引用并将其删除,但它一直出现......我没想到这是一个“功能”
  • @MrTristan 它与您的 Gradle 项目相关联。您可以将 Gradle 项目转换为具有单个根项目而不是子项目,然后重新导入它。
  • 有趣的是,我的项目确实是一个带有“子模块”文件夹的单个根项目,其中包含我在 IntelliJ 中作为“模块”拥有的一堆 git 子模块。
【解决方案2】:

我得到了一组与你类似的 .iml 文件,使用的是旧版本的 Android Studio,但在升级到更高版本后,它又创建了另一个 .iml,因此有一个顶级 project.iml 带有包含 module.iml 和 module-module.iml 的模块。

据我所知,module-module.iml 文件没有用,关键信息在 module.iml 中。然而,即使我删除了所有的 iml 文件,Android Studio 也会重新创建它们,所以我意识到它在 [project]/.idea/modules.xml 中存储了足够的信息来从头开始重新创建 iml 文件。

所以我退出了 Android Studio,删除了 .idea 文件夹和 .iml 文件,然后重新启动了 Android Studio 并使用 build.gradle 文件导入了项目。它只重新创建了project.iml和module.iml,每个人都很高兴。

总结: 只要你的 gradle.build 文件是干净的,那么你就可以删除 .idea 和 .iml 文件,使用 gradle 文件导入项目,得到一个干净整洁的项目结构。

【讨论】:

  • 令人难以置信的是,在最初的报告和混乱之后的 7 年多之后,问题仍然存在。感谢您的“总结”,这应该是一个简短的接受答案:)
猜你喜欢
  • 2013-06-15
  • 1970-01-01
  • 2017-07-14
  • 2016-01-15
  • 2014-02-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-12
相关资源
最近更新 更多