探讨android开发编译中的jdk,sdk,kapt,agp,gradle,kotlin,api等版本问题以及如何用新版android studio调试低版本的安卓应用

新手小伙伴们用android studio 2025.2.1等新版本编写调试低版本的安卓应用时,遇到格式各样的错误,你是否因此而烦恼过吗?

本博文尽可能帮助那些新入门的安卓开发者提供一线帮助。

首先我们要解决这个困惑问题就要理清楚jdk,sdk,kapt,agp,gradle,kotlin,api ,android studio等这些工具的作用。

以下是相关概念:

关键概念和工具的解释:

Android Gradle Plugin(AGP):
Android Gradle Plugin 是一个由 Google 提供的构建工具,它与 Gradle 配合使用来构建和打包 Android 应用。它提供了一组任务和功能,使开发人员能够自动化构建过程,并在构建期间执行各种操作,例如编译代码、处理资源、生成 APK 等,本工具是从宏观上来作用app的。

Gradle:
Gradle 是一种构建自动化工具,用于构建和管理项目的依赖项、编译代码、运行测试等。Android Gradle Plugin 使用 Gradle 来构建 Android 项目。它使用基于 Groovy 或 Kotlin 的脚本来定义项目的结构和构建过程,本工具从细节功能上来作用app。

JDK(Java Development Kit):
JDK 是 Java 开发工具包的缩写。它是 Java 开发的核心组件之一,提供了编译、调试和运行 Java 代码所需的工具和库。在 Android 开发中,JDK 中的 Java 编译器用于将 Java 代码编译为字节码,并在运行时提供 Java 运行时环境本工具提供的是一个大环境,和gradle和其对应插件由本质的作用差异。

SDK(Software Development Kit):
SDK 是软件开发工具包的缩写。在 Android 开发中,Android SDK 提供了开发 Android 应用所需的一系列工具、库和文件。它包含 Android 平台的核心库、模拟器、调试工具等。Android SDK 还包括用于开发 Android 应用的 API 文档和示例代码。本工具是保证app功能的积木,app需要的什么核心的东西,是具体功能的核心包。

 kapt(kotlin Annotation Processor tools):

是 Kotlin 官方提供的一个插件,用于在 Kotlin 项目中支持注解处理。KAPT(Kotlin Annotation Processing Tool)是 Java APT(Annotation Processing Tool)的 Kotlin 版本,它允许你在 Kotlin 项目中使用注解处理器生成代码。因为kotlin版本不断演进,这个工具版本也在不断升级,和kotlin版本搭配使用,来处理代码中的注解。它是和kotlin版本绑定 ,一般不需要特别指定版本.

Android studio :

程序员开发app的IDE软件,这个工具本身是集大成与一体,写代码的中心软件,同时可以通过提供的菜单工具调试app。这个工具版本也是在演化的,向前兼容旧的app源码调试。

工具之间的联系如下:

Android Gradle Plugin 与 Gradle 配合使用来构建和打包 Android 应用。它通过解析 Gradle 构建脚本,了解项目的结构和依赖关系,并执行相应的构建任务。
Gradle 使用 JDK 中的 Java 编译器来编译项目中的 Java 代码,并使用 Android Gradle Plugin 提供的任务和扩展来处理 Android 特定的构建操作。
Android Gradle Plugin 和 Gradle 都需要 Android SDK 来获取 Android 平台的核心库、工具和资源。Android Gradle Plugin 使用 Android SDK 提供的工具和文件来处理资源编译、APK 打包等任务。
综上所述,Android Gradle Plugin 和 Gradle 一起用于构建 Android 应用,JDK 提供 Java 编译器和运行时环境,SDK 则提供 Android 平台的工具和库。它们共同协作,使开发人员能够轻松地构建、测试和部署 Android 应用程序。

 

重点:以上工具在android studio 2025版本中,编译老版本的app代码时,可能会遇到各种异常的错误。原因不在于AS的版本,而在于JDK,SDK,AGP,GRADLE的版本不匹配造成的。

严格按照图中的版本匹配关系去设置版本号,能解决99的问题:

I.  Gradle版本和AGP版本关系

APG作为一个插件,它当然要求这个插件,能用于gradle的哪个版本了,所以就有了版本关系。

build.gradle文件中这样配置

dependencies {
    classpath 'com.android.tools.build:gradle:8.7.3' //AGP插件版本
    classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}

使用gradle的版本,

II.   AndroidStudio和AGP的关系

AndroidStudio不停的迭代,但是不能每次能兼容支持老的AGP版本,于是又有了两者的关系。插件版本可以通过手工指定,图中的默认版本未必能够支持你的app所需的版本。所以不要随意采用插件版本,造成一些编译问题。

 

最后列出一个经典的不兼容问题:AndroidStudio 2025.2.1 打开一个工程,AGP是4(gradle版本6.1.1),按上面的图,理论上能支持,而实际却遇到了如下报错:

Your build is currently configured to use incompatible Java 21.0.7 and Gradle 6.1.1. Cannot sync the project.
We recommend upgrading to Gradle version 9.0-milestone-1.
The minimum compatible Gradle version is 8.5.
The maximum compatible Gradle JVM version is 13.

这里就是gradle使用的jdk的版本高造成的,可以通过降低jdk版本来解决。

如果按照android studio的提示去升级各种版本,是很麻烦的,涉及到的问题会很多,编码的时候采用的不同kotlin版本,兼容新版本的问题会很多。建议如果不是代码版本差异太多可以按照提示进行操作,如果代码kotlin的版本差异较大,最好手工按照图来指定jdk版本来更正。

 

RIPRO主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
源码星空 » 探讨android开发编译中的jdk,sdk,kapt,agp,gradle,kotlin,api等版本问题以及如何用新版android studio调试低版本的安卓应用

发表评论

提供最优质的资源集合

立即查看 了解详情