You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

升级至Java 11后Android Studio执行./gradlew lintFooDebug命令报NestMember requires ASM7错误的求助

解决Java 11升级后Android Studio中./gradlew lintFooDebug报错"NestMember requires ASM7"的方案

根据你描述的问题——升级到Java 11后执行./gradlew lintFooDebug时,foo:syncDebugLibJars任务因NestMember requires ASM7失败,结合你已经尝试的统一ASM版本、添加依赖等操作,我整理了几个更针对性的解决思路:

1. 强制Gradle全局替换所有ASM依赖为7.x版本

你之前尝试了统一ASM版本,但可能有些隐藏的依赖(比如AGP自身依赖的ASM模块)没有被覆盖。可以在项目根目录的build.gradle中添加全局依赖强制替换:

allprojects {
    configurations.all {
        resolutionStrategy {
            // 替换所有ASM核心及相关模块为7.3.1(ASM7的稳定版本)
            force 'org.ow2.asm:asm:7.3.1'
            force 'org.ow2.asm:asm-commons:7.3.1'
            force 'org.ow2.asm:asm-tree:7.3.1'
            force 'org.ow2.asm:asm-analysis:7.3.1'
            force 'org.ow2.asm:asm-util:7.3.1'
        }
    }
}

添加后执行./gradlew clean --refresh-dependencies刷新依赖,再尝试运行lint任务。

2. 升级Android Gradle Plugin(AGP)到适配Java 11的版本

Java 11对AGP版本有要求(至少AGP 4.0+),旧版本的AGP可能依赖较低版本的ASM,无法处理Java 11引入的Nest成员特性。检查根目录build.gradle中的AGP版本,升级到稳定的高版本(比如7.4.2或8.x):

buildscript {
    dependencies {
        classpath 'com.android.tools.build:gradle:7.4.2' // 替换为适配的版本
    }
}

同时确保Gradle版本与AGP版本匹配(比如AGP 7.4.x对应Gradle 7.5+)。

3. 排查并排除第三方依赖中的旧版ASM冲突

有些第三方库可能会引入旧版本的ASM,导致冲突。使用Gradle的依赖洞察命令定位问题依赖:

./gradlew foo:dependencyInsight --dependency asm

替换foo为你的模块名,查看输出中是否有版本低于7的ASM依赖,然后在对应的模块build.gradle中排除该依赖:

implementation('问题依赖的坐标') {
    exclude group: 'org.ow2.asm'
}

4. 清理本地缓存并重新构建

有时候缓存会导致依赖版本不生效,执行以下命令彻底清理:

./gradlew clean build --refresh-dependencies
rm -rf ~/.gradle/caches # 适用于Linux/macOS
# Windows用户删除C:\Users\你的用户名\.gradle\caches文件夹

然后重新同步项目并运行lint任务。

5. 检查Java版本配置是否全局生效

确保项目的所有模块都正确配置了Java 11:
在模块的build.gradle中确认:

android {
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_11
        targetCompatibility JavaVersion.VERSION_11
    }
    kotlinOptions { // 如果用Kotlin的话
        jvmTarget = '11'
    }
}

从你的报错栈来看,问题出在AGP的TypedefRemover工具类处理字节码时,使用了低版本的ASM无法识别Java 11的Nest成员特性,所以优先尝试升级AGP和全局替换ASM版本这两个方案,应该能解决问题。

内容的提问来源于stack exchange,提问作者Yvgen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.30 04:22:44