【问题标题】:Gradle compatibility between Android Studio 4.0.1 and IntelliJ 2020.2 IDEAndroid Studio 4.0.1 和 IntelliJ 2020.2 IDE 之间的 Gradle 兼容性
【发布时间】:2020-10-29 16:08:26
【问题描述】:

只是观察到 AS4.0.1 不再破坏 IntelliJ (2020.2) 启动项目设置,只是抱怨检测到“不支持的模块”(注 *)。

这是和平共处的缓和的开始吗(我不想在未来感到不愉快的惊讶)?

只是为了给出具体的上下文,这是我所指的:(两者都拒绝最后一个配置 - 一个失败的黑客攻击)并分别使用他们首选的第一个或第二个配置:这是一件好事)

从 IDEA 2020.2 开始: 检测到不支持的模块:以下模块不支持编译:CalibSense.app。 不幸的是,你不能在一个项目中拥有非 Gradle Java 模块和 Android-Gradle 模块。 Gradle 项目重新加载删除了以下 IDE 模块:

        app
        
You can open DIALOG to select the ones you need to restore.
DIALOG LIST:
    Android App: 
        [x]app
        [v]Badroid.CalibSense.app (level: WORKSPACE)
        [x]CalibSense.app (level: WORKSPACE)

来自 AndroidStudio 4.0.1(介于 IDEA 2019.2 和 2019.3 之间):

检测到不支持的模块:以下模块不支持编译:CalibSense.app。 不幸的是,你不能在一个项目中同时拥有非 Gradle Java 模块和 Android-Gradle 模块。

DIALOG LIST:
    Android App: 
        [v]app
        [x]Badroid.CalibSense.app (level: WORKSPACE)
        [x]CalibSense.app (level: WORKSPACE)

建议更新 AS 4.1(包括 - IntelliJ IDEA 2020.1.4 的所有改进)

注意 *:事实证明他们都抱怨非法配置,而不是彼此的工作配置。

【问题讨论】:

    标签: gradle android-gradle-plugin


    【解决方案1】:

    不。 问题出在 IntelliJ 平台的不同版本中。 Android Studio 和 IntelliJ Idea 是分开开发的,因为它是不同公司的不同产品。 谷歌在 Android Studio 中采用了 IntelliJ 平台——所以我们可以把它看作是被黑的 IDEA。 所以通常存在向后兼容性——这意味着我可以在新版本的 IntelliJ IDEA 中打开我的旧项目,但反之则不行。 因此,如果查看 AS 4.0 发行说明,我们可以提到它基于 IntelliJ IDEA 2019.3.3 (https://developer.android.com/studio/releases#4.0-idea-2019-3-3)。但是您尝试打开一个较新版本的 IntelliJ 平台 (2020.2) 的项目。所以它失败了,因为您尝试通过旧 IDEA(2019.3.3)打开一个较新的项目版本(2020.2) 但是您可以毫无问题地使用 IDEA 2020.2 打开 AS 4.0 项目 - 它只会将旧项目布局转换为新项目。

    【讨论】:

    • 我原以为 Gradle 可以防止或避免上游的这种持久版本偏差?大约两年前,他们在 AS 方面有很多破损?
    • Gradle 是一个构建系统。它独立于IDE。您可以从命令行毫无问题地构建您的项目。 IDEA 生成不同的工作人员——索引、数据库等。它位于 .idea 文件夹中。因此,当您使用 IDE 打开项目时,如果该文件夹存在,它会尝试解析该文件。 AS 和 IDEA 之间的差距一直存在。
    • 我想 Gradle 是独立于 IDE 的,但是一旦它嵌入到其中(特别是在构建工具、依赖项和其他外围配置参数保留的地方),它就会变得依赖。 Gradle 是否不可能强制 所有 下游集成商遵循推荐的方式合并到各自的 IDE 中,然后进一步向下游,比如 IntelliJ 建议如何遵循其合并方式,也许基于项目、模块、应用程序等的语义? (对不起,这只是一个理论问题)。
    • 我在问题中添加了更多细节,以说明我所说的共存是什么意思,这是一件很好的事情。 AS 更喜欢第一个项目配置,IDEA 是第二个。他们都拒绝第三次,我认为这是我几年前失败的黑客攻击。与仅使用 Gradle 的更新相比,我对 IDE 驱动的更新更加自如,因此我将执行此更新 (AS4.0.1=>4.1),它应该能够维持和平共存。
    • AS 无法将 4.0.1 更新到 4.1,因为“插件与发现的新版本不兼容:Firebase 服务”,这对我来说是一个安全的事情,可以避免。
    猜你喜欢
    • 2020-11-19
    • 2019-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-03
    • 1970-01-01
    • 1970-01-01
    • 2017-03-27
    相关资源
    最近更新 更多