【问题标题】:Missing top-level build.gradle in multi-module project多模块项目中缺少顶级 build.gradle
【发布时间】:2020-09-29 02:06:59
【问题描述】:

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

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

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

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

【问题讨论】:

  • 哪个项目是顶级的?
  • @ssh "android" 模块是根目录下的 build.script。我应该将其重命名为其他名称并为顶层创建一个新的 build.gradle 吗?
  • 嗨,我对这两个 gradle 文件有点困惑。我的 app/platforms/android 中有一个,app/platforms/android/CordovaLib 中有另一个。现在我的问题是,哪个是项目级的,哪个是应用级的 build.gradle?你能帮帮我吗?

标签: android android-studio gradle


【解决方案1】:

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

  1. 关闭所有打开的项目。
  2. 从“欢迎使用 Android Studio”窗口中的最近项目中删除了项目。
  3. 现在点击“打开现有的 android studio 项目”并浏览到项目 repo 并选择顶级build.gradle

【讨论】:

  • 拥有 1 个或多个子模块都没关系。我在一个“应用程序”子模块i.stack.imgur.com/RZY1x.png 上遇到了这个问题,您的步骤帮助我解决了这个问题
  • 谢谢。这对我也有帮助。但是,无需从最近的项目列表中删除所有项目。只需删除有问题的项目即可解决此问题
  • 这有效,但只有在执行git clean -dX 之后。 确保在执行git clean 之前将所有local.propertieskeystore.properties 等移开!
【解决方案2】:
  1. 关闭您的项目
  2. 重命名项目目录(在工作区中)
  3. 使用新名称打开项目
  4. 等待 gradle 同步,应将 build.gradle(项目)添加到 Gradle 脚本中
  5. 关闭项目
  6. 用原名重命名项目目录
  7. 用好名字重新打开项目
  8. 等待 gradle 同步,build.gradle 应该又来了...

【讨论】:

    【解决方案3】:
    // 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,那么你可能会很高兴。

    【讨论】:

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

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

      【讨论】:

        【解决方案5】:

        您可以为包含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?你能帮帮我吗?
        【解决方案6】:

        以下步骤为我解决了这个问题:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2022-01-05
          • 2012-04-28
          • 2023-03-17
          • 2012-02-21
          • 2014-04-06
          • 2015-04-02
          • 1970-01-01
          相关资源
          最近更新 更多