Flutter打包APK报错:加载flutter-plugin-loader插件异常
Flutter构建APK失败:无法加载native_plugin_loader.groovy编译类
问题描述
构建APK时触发插件加载异常:
应用插件请求[id: 'dev.flutter.flutter-plugin-loader', version: '1.0.0']时发生异常
应用插件'dev.flutter.flutter-plugin-loader'失败。无法从缓存加载脚本'C:\src\flutter\packages\flutter_tools\gradle\src\main\groovy\native_plugin_loader.groovy'的编译类。
解决步骤
1. 验证Flutter SDK路径有效性
- 打开项目根目录的
local.properties文件,确认flutter.sdk配置的路径(如C:\src\flutter)真实存在,且该路径下的packages/flutter_tools/gradle/src/main/groovy/native_plugin_loader.groovy文件确实存在。 - 若路径错误,修正后重新同步项目。
2. 清理缓存与构建文件
执行以下操作彻底清理后重新构建:
- 运行命令:
flutter clean - 删除项目根目录下的
.gradle文件夹 - 删除
android目录下的.gradle和build文件夹 - 执行
flutter pub get拉取依赖 - 尝试重新构建APK:
flutter build apk
3. 调整settings.gradle插件配置
修改pluginManagement区块中的includeBuild写法,避免路径解析问题:
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 } settings.ext.flutterSdkPath = flutterSdkPath() // 修改为文件对象方式引用 includeBuild(new File(settings.ext.flutterSdkPath, "packages/flutter_tools/gradle")) repositories { google() mavenCentral() gradlePluginPortal() } }
同时,移除插件版本硬编码(Flutter会自动匹配SDK内置的插件版本):
plugins { id "dev.flutter.flutter-plugin-loader" apply false id "com.android.application" version "7.4.0" apply false id "org.jetbrains.kotlin.android" version "1.8.10" apply false id "com.google.gms.google-services" version "4.3.15" apply false }
4. 同步Flutter与Gradle版本兼容性
- 运行
flutter upgrade升级到最新稳定版Flutter - 若Gradle版本过低,更新
gradle-wrapper.properties中的distributionUrl到兼容版本(如Flutter 3.10+推荐使用gradle-8.0-all.zip),同时对应升级com.android.application插件版本到8.0.0+
原配置文件参考
settings.gradle
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 } settings.ext.flutterSdkPath = flutterSdkPath() includeBuild("${settings.ext.flutterSdkPath}/packages/flutter_tools/gradle") repositories { google() mavenCentral() gradlePluginPortal() } } plugins { id "dev.flutter.flutter-plugin-loader" version "1.0.0" id "com.android.application" version "7.4.0" apply false //7.3.0 id "org.jetbrains.kotlin.android" version "1.8.10" apply false id "com.google.gms.google-services" version "4.3.15" apply false } include ":app"
gradle-wrapper.properties
#Fri Jun 23 08:50:38 CEST 2017 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists distributionUrl = https\://services.gradle.org/distributions/gradle-7.6-all.zip #7.6
内容的提问来源于stack exchange,提问作者Grace Oduwa Omosumwen
相关产品推荐
相关产品推荐

