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

集成Flutter模块的Java项目编译报错:NoClassDefFoundError

解决Flutter集成Java项目编译时的java.lang.NoClassDefFoundError问题

编译集成Flutter模块的Java项目时碰到Exception java.lang.NoClassDefFoundError: Could not initialize class org.codehaus.groovy.vmplugin.v7.Java7报错,改了Gradle版本还没解决?试试下面这些办法:

  • 检查Groovy与Gradle、JDK的版本兼容性
    这个报错大概率是版本不匹配导致的。高版本Gradle需要对应版本的Groovy,旧Groovy在高JDK环境下对Java7的VM插件支持有问题。
    打开项目根目录的Project级build.gradle,找到buildscript里的classpath配置,调整Groovy版本:

    buildscript {
        dependencies {
            // 比如Gradle 7.x+搭配Groovy 3.0.x版本
            classpath 'org.codehaus.groovy:groovy-all:3.0.9'
        }
    }
    

    同时确保Android Gradle插件(com.android.tools.build:gradle)和Gradle版本匹配,比如Gradle 7.0对应AGP 7.0.0。

  • 确认JDK版本配置
    JDK版本过高或过低都可能触发这个问题,比如用JDK11+时,旧Groovy版本会出问题。

    • 在Android Studio里通过File → Project Structure → Project设置JDK位置,推荐Gradle7.x以上搭配JDK11;
    • 也可以在项目根目录的gradle.properties里直接指定:
      org.gradle.java.home=/你的JDK11路径
      
  • 清理缓存重新同步
    缓存残留也会导致版本冲突:

    1. 点击Android Studio的File → Invalidate Caches...,选择Invalidate and Restart;
    2. 手动删掉项目根目录的.gradle和build文件夹,然后执行gradle clean build命令。
  • 检查Flutter模块的Gradle配置
    集成的Flutter模块可能自带Gradle配置和主项目冲突:

    • 进入Flutter模块的android目录,检查其gradle-wrapper.properties和build.gradle的版本,确保和主项目一致;
    • 执行flutter clean清理Flutter缓存,再重新同步项目。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 20:35:27