【问题标题】:How to get Android Studio to recognize my plain Gradle Java project?如何让 Android Studio 识别我的普通 Gradle Java 项目?
【发布时间】:2021-09-24 07:47:15
【问题描述】:

我有一个带有 Java 代码的简单多模块 Gradle 项目。当我将它导入 IntelliJ 社区时,它会要求我从 Maven 和 Gradle 中选择构建工具,并且会正确识别 Gradle 模块并显示一个 Gradle 工具窗口。

当我在 Android Studio 中执行相同操作时,我没有收到构建工具问题,并且它无法识别项目或向我显示 Gradle 工具窗口。

如何让它在 Android Studio 中工作?

【问题讨论】:

  • 我已经使用 A/S 好几年了,在多个 A/S 不同的版本上。 AFAIK,它应该“正常工作”。但我从来没有像喜欢用于 Android 开发的 Eclipse 那样喜欢 A/S ……正是因为 A/S 太努力地试图通过在你背后做太多的“黑魔法”来“提供帮助”。所以我对你所看到的并不感到惊讶。就我而言,我已经逃离了 A/S,我拒绝处理“Kotlin-first”……我很乐意将 VSCode 与 Dart/Flutter 一起使用;)

标签: android-studio gradle


【解决方案1】:

试试这个,

转到文件 -> 项目结构 -> Sdk位置

这个你会得到一个像这样的选项菜单(给定的图像)

您可以在此处更新您的 gradle 设置。

【讨论】:

  • 好吧,现在越来越奇怪了。对于 gradle/Java-only 项目,我在此窗口中看不到 SDK 位置。我检查了一个实际的 Android 项目,在那里我可以配置它。我开始认为 Android Studio 只为这个项目加载了一半的插件,还是什么?
  • stackoverflow.com/q/16626810/13304913希望对您有所帮助!
  • 它有点帮助,因为我确实可以在现有的 android 项目中创建一个新的 java 库。但不幸的是,它并不能帮助我让 Android Studio 识别现有的 Gradle 项目。我什至尝试根据新的 Java 库项目的文件制作自己的 .iml 文件,但即使这样也无济于事。
【解决方案2】:

据我所知,答案是:不要尝试。请改用 IntelliJ。安装它肯定比尝试让 Android Studio 执行此操作要快。

【讨论】:

    【解决方案3】:

    如何在 Intellij 中打开项目?你打开文件夹吗?还是你打开build.gradle?

    就像一个 maven 项目(你应该打开 pom.xml,而不是文件夹)你应该使用 build.gradle 打开项目,而不是文件夹。

    Intellij 将按照您的预期执行并导入您的 gradle 项目

    【讨论】:

    • 我刚刚尝试使用顶级build.gradle 打开项目,但Android Studio 只是说“指定的项目文件已经存在”。是的,我在尝试之前删除了现有的.idea 文件夹和*.iml 文件。所以感谢您的提示,但这也不起作用。
    【解决方案4】:

    让它识别项目最少需要添加 AGP,即 Android Gradle 插件:

    buildscript {
        repositories {
            google()
        }
        dependencies {
            classpath "com.android.tools.build:gradle:7.0.2"
        }
    }
    

    然后可以定义 Android 模块:

    • apply plugin: "com.android.application"
    • apply plugin: "com.android.library"
    • apply plugin: "com.android.dynamic-feature"

    然后它会识别android {} 配置块(如果没有这个Gradle DSL 配置块,它将不知道为Android 构建什么或如何构建——因为它不是一个健全的Android 项目)。只需查看链接的文档,这与默认的 Java 工具几乎没有关系。

    目前需要 Gradle 7.2 来构建。即使不能混合每个模块的插件,每个模块也可以有不同的插件 - 或者使用不同的 IDE,这取决于模块的工具。这到底有多兼容,取决于 Java 模块中使用的依赖关系。每个模块只能使用任一工具这一事实决定了要应用的布局。

    【讨论】:

      【解决方案5】:

      我怀疑您将不得不手动将一些代码从 intellij 中的成功构建文件移动到 android 构建文件。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-12-12
        • 1970-01-01
        • 2014-07-27
        • 1970-01-01
        • 1970-01-01
        • 2020-02-17
        • 2021-09-02
        相关资源
        最近更新 更多