升级至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 并启动守护进程。

相关推荐
恋猫de小郭10 小时前
Android 限制侧载新进展,谷歌联合国内厂商推验证计划
android·前端·flutter
恋猫de小郭11 小时前
解读 Android 17 全新内存限制,有没有“豁免”后门?
android·前端·flutter
贾艺驰13 小时前
实战Android Framework: 新增一个系统权限
android
alexhilton18 小时前
使用Android Archive进行打包
android·kotlin·android jetpack
badhope20 小时前
做了几年安卓开发,这些坑我帮你踩过了
android·android studio
逐光老顽童3 天前
Java 与 Kotlin 混合开发避坑指南:30 个真实案例实录
android·kotlin
爱勇宝3 天前
鸿蒙生态的下半场:开发者不只要能开发,还要能赚钱
android·前端·程序员
Yeyu3 天前
刷新一帧的艺术:invalidate / postInvalidate / postInvalidateOnAnimation全解析
android
潘潘潘4 天前
Android OTA 升级原理和流程介绍
android
plainGeekDev4 天前
null 判断 → Kotlin 可空类型
android·java·kotlin