gpt4 book ai didi

android - 如何在 Android Studio 中的模块中使用不同的 Kotlin 版本(WearOS 模块)

转载 作者:行者123 更新时间:2023-12-03 07:58:25 26 4
gpt4 key购买 nike

我有一个包含多个模块的 Android 项目,手机应用程序模块和一些库模块。它们都适用于 CoposeCompiler 1.2.0 和 Kotlin 版本 1.7.0。现在,我想添加一个 WearOS 模块,以使用 JetpackCompose 创建智能 watch 应用程序。问题是,最新稳定版本的 ComposeCompiler for WearOS (1.1.1) 确实需要 Kotlin 1.6.10 才能工作,没有该版本就无法构建。

我尝试将 Kotlin 1.6.10 添加为依赖项以及现有依赖项 (1.7.0),但当我尝试构建项目(重复的类)时,它会抛出错误。我是在项目级 Gradle 文件和模块级 Gradle 文件中完成的。

我还尝试在 WearOS 模块的 kotlinOptions 内使用 suppressKotlinVersionCompatibilityCheck=true 标签,但它也出现错误:

java.lang.NoSuchMethodError: 'boolean org.jetbrains.kotlin.ir.declarations.IrClass.isInline()'

我不知道如何才能实现这一目标。我认为唯一可行的选择是专门为 WearOS 应用程序创建另一个项目,但我希望将所有模块放在一个项目中。欢迎任何帮助!

最佳答案

问题是:如何在同一项目中的不同模块使用不同的 Kotlin 版本?

我会回答我是如何解决这个问题的。

示例场景,有 2 个模块:app 和:module。

:应用需要使用Kotlin版本1.8.0
:module需要使用Kotlin版本1.6.2

从顶级 build.gradle 插件 block 中删除:

plugins {
id "org.jetbrains.kotlin.android" version "1.8.0" apply false
}

将 buildscript block 添加到 :app 模块的 build.gradle:

buildscript {
repositories {
gradlePluginPortal()
// mavenCentral() include if you need plugins from other repositories
// google() include if you need plugins from other repositories
}

dependencies {
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.8.0"
// other plugin dependencies...
}
}

apply plugin: 'org.jetbrains.kotlin.android'

将 buildscript block 添加到 :module build.gradle 并指定 kotlin 版本:

buildscript {
repositories {
gradlePluginPortal()
// mavenCentral() include if you need plugins from other repositories
// google() include if you need plugins from other repositories
}

dependencies {
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.6.2"
// other plugin dependencies...
}
}

apply plugin: 'org.jetbrains.kotlin.android'

就是这样。现在,您的 :module 将使用 1.6.2 构建, :app 使用 1.8.0

关于android - 如何在 Android Studio 中的模块中使用不同的 Kotlin 版本(WearOS 模块),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75288476/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com