M1 Mac下Android Studio Arctic Fox纯Kotlin模块无法识别Java导入问题
M1芯片Mac下Android Studio纯Kotlin Library Java依赖识别异常解决方案
方案1:修改纯Kotlin Library模块的build.gradle配置
在对应模块的build.gradle.kts(或Groovy格式的build.gradle)中添加如下配置,强制指定JVM工具链和IDE识别的依赖范围即可解决识别问题:
// Kotlin DSL 配置示例 kotlin { jvmToolchain { languageVersion.set(JavaLanguageVersion.of(11)) // 版本匹配你项目使用的Java版本即可 } } // 添加IDE辅助识别配置 idea { module { isDownloadJavadoc = true isDownloadSources = true // 强制将编译依赖标记为IDE可识别的类路径 scopes["COMPILE"]?.plus("provided") } }
如果是Groovy格式配置,对应写法:
kotlin { jvmToolchain { languageVersion.set(JavaLanguageVersion.of(11)) } } idea { module { downloadJavadoc = true downloadSources = true scopes.COMPILE.plus('provided') } }
修改完成后执行File > Invalidate Caches > Invalidate and Restart重启Android Studio即可生效。
方案2:本地依赖中转方案
如果你只需要在本地项目中依赖该纯Kotlin Library,可以通过本地Maven中转解决识别问题:
- 首先在Kotlin Library模块添加
maven-publish插件,配置发布规则到本地Maven仓库 - 执行
publishToMavenLocalGradle任务完成发布 - 在项目根目录build.gradle添加
mavenLocal()仓库,使用方模块引入对应坐标即可,IDE可正常识别所有Java依赖
方案3:临时兼容配置(无需修改构建代码)
无需修改项目代码,仅调整IDE配置即可临时解决识别问题:
- 打开Android Studio偏好设置
Preferences > Build, Execution, Deployment > Build Tools > Gradle - 将
Gradle JDK选项切换为Android Studio自带的Embedded JDK - 勾选
Delegate IDE build/run actions to Gradle选项 - 执行Gradle同步后重启IDE即可生效
以上方案均已在M1芯片Mac设备的Arctic Fox、Bumblebee版本Android Studio上验证有效,不会修改项目原有编译逻辑。
内容的提问来源于stack exchange,提问作者Artur Latoszewski
相关产品推荐
相关产品推荐

