【问题标题】:Android Studio adds libraries.iml fileAndroid Studio 添加libraries.iml 文件
【发布时间】:2014-01-26 20:11:47
【问题描述】:

我刚刚按照Gradle Plugin User Guide 的建议在Android Studio 中为我的Android 项目创建了一个多项目设置。这里是我的文件结构

MyProject/
 | settings.gradle
 | build.gradle
 | MyProject.iml
 + app/
    | build.gradle
    | app.iml
 + libraries/
    + lib1/
       | build.gradle
       | lib1.iml

此配置中有三个模块 - MyProjects.imlapp.imllib1.iml。尽管一切正常并且项目构建成功,但它存在一个烦人的问题。 Android Studio 不断在libraries 文件夹下创建一个libraries.iml 文件,并将该文件夹设为模块。

这就是问题所在。这是一种正常的行为吗?如果不是,如何摆脱它?

我尝试删除libraries.iml 文件并更新MyProject.iml,但没有成功。该文件一次又一次地出现。

更新和最终解决方案: 为了避免生成的文件分散我们的注意力,我将 Android Studio 配置为在最后不显示它们。

File (Android Studio on Mac) -> Preferences... -> File Types -> Ignore
files and folders: .DS_Store;.git;*.iml;.idea;

【问题讨论】:

  • 为什么你不喜欢 *.iml 文件?
  • 因为“libraries”只是一个文件夹,而不是一个模块。不确定我是否希望 IntelliJ 从每个文件夹中创建一个模块。

标签: android intellij-idea android-studio android-gradle-plugin


【解决方案1】:

您将“库”指定为“lib1”模块的父模块。 如果你不需要这样的父模块,你可以改变你的 settings.gradle 来自

include ':app', ':libraries:lib1' 

include ':app', 'libraries/lib1'

【讨论】:

  • 你为什么说“你指定'库'作为父模块”? @beworker 只将真正的库放在一个文件夹中
  • @Jose_GD 因为如果你使用“:”分隔符,gradle 会创建这样的模块。您可以使用以下任务检查它:task listProjects << { rootProject.allprojects.each { println it } }
【解决方案2】:

这是预期的行为,没有任何问题。

根据我的发现,您的项目中有两种类型的 .iml 文件

  1. 内部模块(您的代码所在的位置)

  2. 在项目根目录内(您的模块所在的位置)

如图所示

标记为红色的文件是根 .iml 文件,其中没有更多信息,而标记为黄色的文件是您的实际模块的 .iml 文件,其中包含有关您的模块的所有信息,例如依赖项、任务等。

如果您查看这些文件,您将获得更清晰的图片。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-23
    • 1970-01-01
    • 2014-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多