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

执行:lint任务遇Java 9字节码/ASM版本冲突问题求助

解决Lint任务中Java 9字节码与ASM版本冲突问题

我之前帮不少开发者处理过这类问题,你遇到的核心矛盾是Android Lint工具依赖的ASM版本过低:Java 9对应的字节码版本是53.0,而ASM 6及以上版本才支持处理这类字节码,你的Lint环境里的ASM版本低于6,所以扫描到包含Java 9 module-info.class的依赖时就会触发报错。下面是几个可行的解决方案:

方案一:升级Android Gradle Plugin(AGP)与Gradle版本

这是最彻底的解决办法,高版本的AGP已经内置了支持Java 9+字节码的ASM版本。比如:

  • AGP 4.0及以上版本通常搭配ASM 7+,完全兼容Java 9到Java 16的字节码
  • 要注意Gradle版本与AGP版本的兼容性(比如AGP 4.2对应Gradle 6.7.1+)

修改项目根目录的build.gradle文件:

buildscript {
    repositories {
        google()
        mavenCentral()
    }
    dependencies {
        // 示例:升级到AGP 4.2.2(可根据需求选择更高稳定版)
        classpath 'com.android.tools.build:gradle:4.2.2'
    }
}

同时修改gradle/wrapper/gradle-wrapper.properties中的Gradle下载地址:

distributionUrl=https\://services.gradle.org/distributions/gradle-6.7.1-all.zip

方案二:排除依赖中的Java 9模块信息文件

如果暂时无法升级AGP,可以通过Gradle规则,直接排除冲突库中的META-INF/versions/9/module-info.class文件,避免Lint工具扫描到它。

针对你提到的几个依赖,修改模块的build.gradle:

// BouncyCastle依赖
implementation("org.bouncycastle:bcprov-jdk15on:1.64") {
    exclude files('META-INF/versions/9/module-info.class')
}
implementation("org.bouncycastle:bcpkix-jdk15on:1.64") {
    exclude files('META-INF/versions/9/module-info.class')
}

// Gson依赖
implementation("com.google.code.gson:gson:2.8.6") {
    exclude files('META-INF/versions/9/module-info.class')
}

// Kotlin协程依赖
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-android:1.4.2-native-mt") {
    exclude files('META-INF/versions/9/module-info.class')
}

注意:这是临时 workaround,后续新增含Java 9模块信息的依赖时,需要重复添加排除规则。

方案三:强制升级ASM依赖版本

在项目根目录的build.gradle中,通过resolutionStrategy强制指定ASM的版本为6.x或更高,覆盖Lint工具自带的旧版本:

allprojects {
    repositories {
        google()
        mavenCentral()
    }
    configurations.all {
        resolutionStrategy {
            force 'org.ow2.asm:asm:6.2.1'
            force 'org.ow2.asm:asm-analysis:6.2.1'
            force 'org.ow2.asm:asm-commons:6.2.1'
            force 'org.ow2.asm:asm-tree:6.2.1'
            force 'org.ow2.asm:asm-util:6.2.1'
        }
    }
}

注意:这种方式可能和其他插件的ASM依赖产生冲突,需要测试验证项目构建是否正常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 22:12:36