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

使用Gradle 7.5.1编译Cordova项目遇Lint错误,是否需降级Java?

问题:执行Gradle构建Cordova项目时出现:app:lint基础设施错误,是否需要降级Java版本?

执行gradle build --warning-mode all --stacktrace编译Cordova项目时,核心错误为:app:lint任务执行失败,提示‘Lint infrastructure error’,堆栈跟踪如下:

* What went wrong:
Execution failed for task ':app:lint'.
> Lint infrastructure error
  Caused by: java.lang.reflect.InvocationTargetException
        at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:116)
        at java.base/java.lang.reflect.Method.invoke(Method.java:577)
        at com.android.tools.lint.gradle.api.ReflectiveLintRunner.runLint(ReflectiveLintRunner.kt:37)
        at com.android.build.gradle.tasks.LintBaseTask.runLint(LintBaseTask.java:133)
        at com.android.build.gradle.tasks.LintGlobalTask.doTaskAction(LintGlobalTask.java:37)
        at com.android.build.gradle.internal.tasks.NonIncrementalGlobalTask$taskAction$$inlined$recordTaskAction$1.invoke(BaseTask.kt:63)
        at com.android.build.gradle.internal.tasks.Blocks.recordSpan(Blocks.java:51)
        at com.android.build.gradle.internal.tasks.NonIncrementalGlobalTask.taskAction(NonIncrementalTask.kt:90)

当前环境版本信息

java -version
java version "18.0.2.1" 2022-08-18
Java(TM) SE Runtime Environment (build 18.0.2.1+1-1)
Java HotSpot(TM) 64-Bit Server VM (build 18.0.2.1+1-1, mixed mode, sharing)

cordova -v
11.0.0

cordova platform ls
Installed platforms:
  .gradle broken
  android 10.1.2
  electron 3.1.0

Gradle配置

org.gradle.jvmargs=-Xmx1536M --add-exports=java.base/sun.nio.ch=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.lang.reflect=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-exports=jdk.unsupported/sun.misc=ALL-UNNAMED
android.useAndroidX=true
android.enableJetifier=true
kotlin.code.style=official

Gradle Wrapper配置:distributionUrl=https\://services.gradle.org/distributions/gradle-7.5.1-bin.zip


解答

是的,你需要降级Java版本来解决这个问题。原因如下:

  • Cordova Android 10.1.2对应的Android Gradle插件版本(通常为7.0.x系列)与Gradle 7.5.1,官方支持的Java版本是Java 11。Java 18属于较新的非LTS版本,在反射调用和模块访问控制逻辑上,和旧版Android构建工具存在兼容性冲突,这正是触发InvocationTargetException导致lint基础设施错误的核心原因。

除了降级Java版本到11,你还可以尝试以下临时方案(但优先推荐Java版本降级):

  • 临时禁用lint任务:在项目根目录的build.gradle中添加配置跳过lint检查:

    android {
        lintOptions {
            checkReleaseBuilds false
            abortOnError false
        }
    }
    

    或者构建时直接跳过lint任务:gradle build --warning-mode all --stacktrace -x :app:lint

  • 修复损坏的.gradle目录:当前环境显示.gradle broken,可以删除项目根目录和用户目录下的.gradle缓存文件夹,重新执行构建。

优先建议安装Java 11(LTS版本),通过环境变量切换到该版本后重新构建,这是最彻底且符合官方规范的解决方式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 19:33:33