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

Flutter生成的Kotlin应用编译报错:Kotlin版本不兼容如何解决?

解决Flutter编译Kotlin应用时的版本不兼容错误

错误信息

/annotation.kotlin_module: Module was compiled with an incompatible version of Kotlin. The binary version of its metadata is 1.7.1, expected version is 1.4.2.

问题原因

你项目依赖的flutter_pdf_viewer插件是用Kotlin 1.7编译的,但主项目根目录配置的Kotlin版本是1.4.32,版本不匹配导致编译失败。同时插件的Gradle配置较旧,和主项目配置不一致,进一步加剧了兼容性问题。

解决步骤

1. 升级主项目的Kotlin和Gradle插件版本

修改项目根目录的build.gradle,将Kotlin版本升级到兼容1.7.1元数据的版本,同时升级Gradle插件到对应兼容版本,替换已废弃的jcenter仓库:

ext {
    compileSdkVersion = 31
}
buildscript {

    ext.kotlin_version = '1.7.20' // 升级到兼容1.7.1元数据的Kotlin版本
    repositories {
        google()
        mavenCentral() // 替换已废弃的jcenter
        maven { url 'https://maven.fabric.io/public' }
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:7.2.0' // 升级Gradle插件以支持Kotlin 1.7
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
        classpath 'com.google.gms:google-services:4.3.14' // 升级到较新版本提升兼容性
        classpath 'io.fabric.tools:gradle:1.30.0'

    }
    subprojects {
        afterEvaluate { project ->
            if (project.hasProperty("android")) {
                android {
                    compileSdkVersion 31
                }
            }
        }
    }

}

allprojects {
    repositories {
        google()
        mavenCentral() // 替换已废弃的jcenter
    }
}

rootProject.buildDir = '../build'
subprojects {
    project.buildDir = "${rootProject.buildDir}/${project.name}"
}
subprojects {
    project.evaluationDependsOn(':app')
}
configurations.all {
    resolutionStrategy {
        force 'androidx.core:core-ktx:1.7.0' // 升级到兼容版本
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

2. 统一插件的Gradle配置

修改flutter_pdf_viewer插件的build.gradle,让它的Gradle插件版本、compileSdkVersion和主项目保持一致,同时替换jcenter仓库:

group 'pt.tribeiro.flutter_pdf_viewer'
version '1.0-SNAPSHOT'

buildscript {
    repositories {
        google()
        mavenCentral() // 替换已废弃的jcenter
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:7.2.0' // 和主项目统一Gradle插件版本
    }
}

rootProject.allprojects {
    repositories {
        google()
        mavenCentral() // 替换已废弃的jcenter
    }
}

apply plugin: 'com.android.library'

android {
    compileSdkVersion 31 // 和主项目统一compileSdkVersion

    defaultConfig {
        minSdkVersion 21
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }
    lintOptions {
        disable 'InvalidPackage'
    }

}

3. 清理缓存并重新编译

执行以下命令清理项目缓存,避免旧配置残留:

flutter clean
rm -rf android/.gradle

之后重新运行flutter run编译项目即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 04:03:14