Flutter升级至3.19.0后Gradle插件与RivePlugin编译错误求助
问题解决方案
一、Gradle插件从imperative apply迁移至declarative plugins block
直接按以下步骤修改Android端Gradle配置文件:
修改android/build.gradle:
删掉原有的buildscript代码块,替换为plugins声明:plugins { id "com.android.application" version "7.4.2" apply false id "org.jetbrains.kotlin.android" version "1.9.0" apply false id "dev.flutter.flutter-gradle-plugin" version "3.19.0" apply false } allprojects { repositories { google() mavenCentral() } }注意:版本号要和你项目中原本使用的Gradle、Kotlin版本保持一致,不要盲目复制。
修改android/app/build.gradle:
替换开头的apply plugin语句为plugins块:plugins { id "com.android.application" id "kotlin-android" id "dev.flutter.flutter-gradle-plugin" }修改android/settings.gradle:
确保文件开头的pluginManagement和plugins配置正确:pluginManagement { def flutterSdkPath = { def properties = new Properties() file("local.properties").withInputStream { properties.load(it) } def flutterSdkPath = properties.getProperty("flutter.sdk") assert flutterSdkPath != null, "flutter.sdk not set in local.properties" return flutterSdkPath }() includeBuild("$flutterSdkPath/packages/flutter_tools/gradle") repositories { google() mavenCentral() gradlePluginPortal() } } plugins { id "dev.flutter.flutter-plugin-loader" version "3.19.0" id "com.android.application" version "7.4.2" apply false id "org.jetbrains.kotlin.android" version "1.9.0" apply false } include ":app"
二、GeneratedPluginRegistrant找不到RivePlugin类
按以下顺序操作:
- 打开项目的
pubspec.yaml,将rive插件版本升级到适配Flutter 3.19的最新版(比如rive: ^0.11.4,可查看pub.dev上的最新版本),然后执行flutter pub get。 - 删除
android/app/src/main/java/io/flutter/plugins/GeneratedPluginRegistrant.java文件,执行flutter clean清理缓存,再重新执行flutter pub get,Flutter会自动生成正确的注册文件。 - 如果以上步骤无效,手动删除
android/.gradle目录,重启IDE后重新构建项目。
其他用户反馈情况
是的,大量用户在升级Flutter 3.10+(尤其是3.19稳定版)后遇到Gradle插件迁移问题——这是因为Flutter官方从该版本开始强制推行Gradle的声明式插件配置,弃用了旧的命令式apply方式。另外,rive插件的适配问题也有不少用户反馈,主要集中在插件版本不兼容、自动生成的注册文件出错这两点。
内容的提问来源于stack exchange,提问作者Ebuzer SARIYERLİOĞLU
相关产品推荐
相关产品推荐

