升级至Android Studio Panda 1 | 2025.3.1:支持自动化JDK管理!

前言:

下午开周会的时候,无意在掘金上看到一篇文章。升级Android Studio至Android Studio Panda 1版本,JAVA JDK支持自动管理了。这对于我们安卓开发来说无疑是个好消息,特别是当你所在的公司中有多个不同的安卓仓库。不同的仓库负责人可能会采用不同的JAVA JDK版本,这就会导致一个问题,如果你本地配置的JAVA JDK版本低于同事在项目中配置的JAVA JDK版本,那么编译就会报错提示你配置更高版本的JAVA JDK。

就像现在我本地配置的JAVA JDK版本是JAVA 17,编译报错提示我当前项目需要配置的JAVA JDK是JAVA 21,本地找不到项目配置所需要的Java版本。

sql 复制代码
FAILURE: Build failed with an exception.

* What went wrong:
A problem occurred configuring project ':app'.
> Failed to notify project evaluation listener.
   > Could not create task ':app:compileDefaultDebugJavaWithJavac'.
      > Failed to calculate the value of task ':app:compileDefaultDebugJavaWithJavac' property 'javaCompiler'.
         > Cannot find a Java installation on your machine (Windows 10 10.0 amd64) matching: {languageVersion=21, vendor=any vendor, implementation=vendor-specific, nativeImageCapable=false}. Toolchain download repositories have not been configured.
   > KotlinJvmAndroidCompilation with name 'defaultDebug' not found.

1.升级Android Studio Panda 1版本

升级完成后,再次打开Android Studio在右下角会有一个Migrate to Gradle Daemon toolchain的气泡提示:

Migrate to Gradle Daemon toolchain翻译成中文的意思是:迁移到Gradle守护进程工具链。对于标题下的文本翻译如下:

Projects using Daemon toolchain allow builds to automatically detect installed toolchains given the defined JVM criteria or download a compatible one if cannot be found locally. In addition, using the Daemon toolchain aligns the selection between CLI and IDE, avoiding spawning multiple Daemons improving performance but also makes it simple to handle the required toolchain on different machines.

使用Daemon工具链的项目允许构建在给定定义的JVM条件下自动检测已安装的工具链,或者在本地找不到的情况下下载兼容的工具链。此外,使用Daemon工具链可以使CLI和IDE之间的选择保持一致,避免产生多个Daemon,从而提高了性能,但也使在不同机器上处理所需的工具链变得简单。

点击上述截图中的2处(Migrate),等待编译完成后,在gradle目录下会帮我们自动生成一个gradle-daemon-jvm.properties的文件,文件内容如下:

关于该文件中内容,笔者使用AI搜索了下,给出的解释还是比较详细的,内容如下:

  • toolchainUrl 前缀:表示不同平台(操作系统、架构)的 JDK 下载或重定向 URL。 这些 URL 指向 foojay.io(开源 JDK 发现服务),每个 ID 代表特定的 JDK 构建。
  • toolchainVendortoolchainVersion 指定所需的 JDK 供应商和版本。 Gradle 在需要运行 Daemon 但当前 JDK 不符合要求时,会根据这些 URL 下载合适的 JDK 并缓存。

总结

gradle-daemon-jvm.propertiesGradle 8.0 以上版本自动生成的配置文件 ,用于定义 Gradle Daemon 自身运行时所需的 JDK 版本及下载源 。该文件由 updateDaemonJvm 机制动态维护,确保即使系统默认 JDK 不符合 Gradle 最低版本要求,Gradle 也能自动获取合适的 JDK 并启动守护进程。

相关推荐
-SOLO-10 小时前
解决VMware 显示比例被重置的问题
android
alexhilton11 小时前
探究Android Views、Flutter和Compose如何渲染你的UI
android·kotlin·android jetpack
Lesile14 小时前
Android:Hilt框架入门 · 在ViewUI和ComposeUI下的应用
android·android jetpack
用户4238162290714 小时前
Android 16 WebView 页面顶部挖孔/通知栏不能显示UI问题排查
android
weixin_7275356215 小时前
Loop 已死,Graph 新生:AI 工作流的范式革命
android·人工智能·rxjava
严同学正在努力16 小时前
从备份到恢复:我用 30 分钟恢复了误删的核心业务表
android·java·数据库·ai
梦想三三16 小时前
LangChain Output Parser 实战:从字符串到结构化数据的完整指南
android·服务器·langchain·github·uv
爱笑鱼18 小时前
Binder(八):远端进程死了,BinderProxy 为什么还能收到通知?
android
Android-Flutter19 小时前
Kotlin 冷流与热流详解
android·kotlin
zhangphil19 小时前
Android ContentProvider/ContentResolver读图片,跨进程 IPC慢
android