背景
本地Android Studio升级,旧版插件虽然可以继续使用,但是开发调试插件的时候会报错。
Android Studio版本: 2022.3.1 Giraffe Patch1,BuildID:223.8836.35
IDea Community 版本: 2022.3.3 (Community Edition), BuildID:223.8836.41
(尽量选择接近的的构建版本,方便调试)
初始Gradle IntelliJ Plugin版本:
plugins {
id 'java'
id 'org.jetbrains.intellij' version '1.1.4' // Intellij 203 及以上版本 (Android Studio Arctic Fox)
id 'org.jetbrains.kotlin.jvm' version '1.8.10'
}
初始JDK使用:jdk11
报错
- 编译过程出现报错:
gradle中指定的编译版本过低,但是当前的inline函数是jdk17中编译的:
这里主要是因为,本地编译所引用的Idea openapi来源是Android Studio,但是Android Studio升级后,其字节码的编译版本变成了17(该版本AS是由jdk17编译的),无法和本地plugin工程的jdk11混用(inline函数)。
采取措施:升级gradle中的jvmTarget:
- 无法拉起Android Studio
这里是Gradle IntelliJ Plugin的bug,需要升级到较新的版本,参考:
https://github.com/JetBrains/gradle-intellij-plugin/issues/1216
Could not initialize class com.intellij.ui.mac.foundation.Foundation
when building against local IDE · Issue #1216 · JetBrains/gradle-intellij-plugin (github.com)
这里注意:
出现这个是因为snapshot版本在另外的maven仓库中,需要在setting.gradle中配置:
参考:https://plugins.jetbrains.com/docs/intellij/tools-gradle-intellij-plugin.html#snapshot-release
Gradle IntelliJ Plugin | IntelliJ Platform Plugin SDK (jetbrains.com)
- 启动AS沙盒工程crash
参考:https://github.com/JetBrains/gradle-intellij-plugin/issues/1216
Could not initialize class com.intellij.ui.mac.foundation.Foundation
when building against local IDE · Issue #1216 · JetBrains/gradle-intellij-plugin (github.com)
更新版本到1.11.0-SNAPSHOT
最后:原神,启动!!
总结
基本都是gradle intellij plugin的锅,可以关注下这个插件的issue更新下版本。