多模块项目中缺少顶层的build.gradle文件

22

我的项目中缺少“顶级”项目的build.gradle脚本:

enter image description here

我从一个非常复杂的Maven/Eclipse项目中将其导入到Android Studio中,它基本上在目录的顶层添加了一个模块(“android”),并将所有子模块(“tappurwear”,“shared”等)添加到该原始模块的目录中。

我知道这是一种有点混乱的结构,但是有很多其他的构建脚本,所以我不能只是将所有文件移到一个适当的单独模块中。

现在我想知道,如何为整个项目添加一个顶级build.gradle脚本?我看到的通常的Android Studio项目只有一个,但它将我的顶级build脚本视为“android”模块的build脚本。我是否可以创建一个新的build.script作为顶级项目脚本,并与其他模块共享设置?在Android Studio或Gradle中,我能否重命名在所有其他模块脚本中使用的顶级build脚本?


哪个项目是顶层的? - Sergey Shustikov
您IP地址为143.198.54.68,由于运营成本限制,当前对于免费用户的使用频率限制为每个IP每72小时10次对话,如需解除限制,请点击左下角设置图标按钮(手机用户先点击左上角菜单按钮)。 - phreakhead
嗨,我对这两个Gradle文件有点困惑。我在我的app/platforms/android中有一个,另一个在我的app/platforms/android/CordovaLib中。现在我的问题是,哪一个是项目级别的,哪一个是应用级别的build.gradle?你能帮我吗? - Ionut Necula
1
相关答案 Android View 中缺少 project.gradle - Ahmed AlAskalany
6个回答

22

我在我的多模块项目中也遇到了同样的问题,这个解决方案对我有用。

  1. 关闭所有打开的项目。
  2. 从“欢迎来到Android Studio”窗口中将该项目从最近项目中移除。
  3. 现在点击“打开现有的Android Studio项目”,浏览到项目仓库并选择顶层的build.gradle文件。

1
无论您有一个或多个子模块都没有关系。我在一个“应用”子模块中遇到了这个问题https://i.stack.imgur.com/RZY1x.png。您的步骤帮助我解决了这个问题。 - user25
谢谢。这也帮助了我。不过,无需从最近的项目列表中删除所有项目。只需删除出现问题的项目即可解决此问题。 - sunil
这个方法可行,但需要先执行 git clean -dX 命令。在执行 git clean 前,请确保将任何 local.propertieskeystore.properties 文件等移出路径! - lionello

3
  1. 关闭项目
  2. 重命名项目目录(在工作区内)
  3. 使用新名称打开项目
  4. 等待Gradle同步,build.gradle(项目)应该被添加到Gradle脚本中
  5. 关闭项目
  6. 将项目目录重新命名为原始名称
  7. 使用正确的名称重新打开项目
  8. 等待Gradle同步,build.gradle应该再次出现...

1
  1. 关闭项目。
  2. 删除“.idea\project_name.iml”(名称通常与项目文件夹相同)。
  3. 从“.idea\modules.xml”中删除对此文件的引用。
  4. 打开项目。

IDEA将在项目的根文件夹而不是“.idea”中重新创建此文件,并出现项目级别的“build.gradle”。这让我想到更好的解决方案可能只是将此文件移动到“.idea”之外,并在“.idea\modules.xml”中更正引用。


1
// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
repositories {
    jcenter()
}
dependencies {
    classpath 'com.android.tools.build:gradle:1.2.3'

    // NOTE: Do not place your application dependencies here; they belong
    // in the individual module build.gradle files
}

}
allprojects {
repositories {
    jcenter()
}
}

根据我的经验,实际上并不重要,您需要做的是使用您喜欢的 .txt 编写器创建一个 build.gradle 文件(确保它说 .gradle)。如果您的根文件夹应用程序名称为“Archiver”,则将 gradle 文件放在您看到像 app、.idea、gradle 等文件夹的地方。
您必须记住的一件事是,如果您的项目无法找到它,您可能需要添加指向此 gradle 的指针。
为确保您的项目看起来良好,请转到“文件”>>“项目结构”>>“模块”(以及您认为已实现的每个其他菜单)。如果您没有看到任何红色 x,则可以继续。

0

以下步骤解决了我的问题:

  1. 关闭项目。
  2. 删除“.idea\project_name.iml”(名称通常与项目文件夹相同)。
  3. 从“.idea\modules.xml”中删除对此文件的引用。
  4. 在IDE中打开项目

0

您可以在包含 gradle.propertiessettings.gradle 文件的根目录中添加 build.gradle 文件。

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:1.0.0'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        jcenter()
    }
}

嗨,我对这两个Gradle文件有点困惑。我在我的app/platforms/android中有一个,另一个在我的app/platforms/android/CordovaLib中。现在我的问题是,哪一个是项目级别的,哪一个是应用级别的build.gradle?你能帮我吗? - Ionut Necula

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接