【错误记录】Flutter 报错 ( Could not read script ‘xxx\flutter_tools\gradle\app_plugin_loader.gradle‘ )





一、 报错信息



问题环境描述 : 在 电脑 A 上创建了 Flutter 应用 , 上传到了 GitHub 中 , 然后在 电脑 B 上下载该源码 , 编译时报如下错误 ;

FAILURE: Build failed with an exception.

* Where:
Settings file 'D:\002_Project\002_Android_Learn\flutter_photo\android\settings.gradle' line: 11

* What went wrong:
A problem occurred evaluating settings 'android'.
> Could not read script 'D:\001_Programs\004_Flutter\flutter\packages\flutter_tools\gradle\app_plugin_loader.gradle' as it does not exist.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 1s
Running Gradle task 'assembleRelease'...                            3.1s
Gradle task assembleRelease failed with exit code 1
Process finished with exit code 1

在这里插入图片描述





二、 问题分析



问题核心错误 :

Could not read script 
'D:\001_Programs\004_Flutter\flutter\packages\flutter_tools\gradle\app_plugin_loader.gradle' 
as it does not exist.

编译时需要 D:\001_Programs\004_Flutter\flutter\packages\flutter_tools\gradle\app_plugin_loader.gradle 文件 , 我在 D:\001_Programs\004_Flutter\flutter\packages\flutter_tools\gradle\ 目录下没有找到 app_plugin_loader.gradle 文件 ;

在这里插入图片描述

查看该出现问题的 android/setting.gradle 文件 ;

include ':app'

def localPropertiesFile = new File(rootProject.projectDir, "local.properties")
def properties = new Properties()

assert localPropertiesFile.exists()
localPropertiesFile.withReader("UTF-8") { reader -> properties.load(reader) }

def flutterSdkPath = properties.getProperty("flutter.sdk")
assert flutterSdkPath != null, "flutter.sdk not set in local.properties"
apply from: "$flutterSdkPath/packages/flutter_tools/gradle/app_plugin_loader.gradle"

在本电脑上可运行的其它应用的 android/setting.gradle 文件 ;

include ':app'

def flutterProjectRoot = rootProject.projectDir.parentFile.toPath()

def plugins = new Properties()
def pluginsFile = new File(flutterProjectRoot.toFile(), '.flutter-plugins')
if (pluginsFile.exists()) {
    pluginsFile.withReader('UTF-8') { reader -> plugins.load(reader) }
}

plugins.each { name, path ->
    def pluginDirectory = flutterProjectRoot.resolve(path).resolve('android').toFile()
    include ":$name"
    project(":$name").projectDir = pluginDirectory
}


电脑 B 上创建的 Flutter 工程可以在 电脑 A 上运行 ;
电脑 A 上创建的 Flutter 工程不能在 电脑 B 上运行 ;
怀疑是环境版本 , Flutter 版本 , Dart 版本 , Android Studio 版本 , Android SDK 版本 不一致导致的 ;
建议全部使用相同的配置 ;





三、 解决方案



删除源码中的 android 目录 , 整个删除 , 然后在 Terminal 中进入 源码根目录 , 执行

flutter create .

命令 , 就会重新生成 android 目录 ;


命令行打印数据如下 : flutter_photo 就是源码的根目录 ;

D:\002_Project\002_Android_Learn\flutter_photo>flutter create .
Recreating project ....
  .idea\libraries\Flutter_for_Android.xml (created)
  .idea\libraries\KotlinJavaRuntime.xml (created)
  .idea\runConfigurations\main_dart.xml (created)
  android\app\build.gradle (created)
  android\app\src\main\kotlin\com\example\flutter_photo\MainActivity.kt (created)
  android\build.gradle (created)
  android\flutter_photo_android.iml (created)
  android\.gitignore (created)
  android\app\src\debug\AndroidManifest.xml (created)
  android\app\src\main\AndroidManifest.xml (created)
  android\app\src\main\res\drawable\launch_background.xml (created)
  android\app\src\main\res\mipmap-hdpi\ic_launcher.png (created)
  android\app\src\main\res\mipmap-mdpi\ic_launcher.png (created)
  android\app\src\main\res\mipmap-xhdpi\ic_launcher.png (created)
  android\app\src\main\res\mipmap-xxhdpi\ic_launcher.png (created)
  android\app\src\main\res\mipmap-xxxhdpi\ic_launcher.png (created)
  android\app\src\main\res\values\styles.xml (created)
  android\app\src\profile\AndroidManifest.xml (created)
  android\gradle\wrapper\gradle-wrapper.properties (created)
  android\gradle.properties (created)
  android\settings.gradle (created)
  flutter_photo.iml (created)
Wrote 25 files.

All done!
[] Flutter: is fully installed. (Channel stable, v1.12.13+hotfix.8, on Microsoft Windows [Version 10.0.18363.1139], locale zh-CN)
[] Android toolchain - develop for Android devices: is fully installed. (Android SDK version 29.0.3)
[] Android Studio: is fully installed. (version 4.0)
[!] IntelliJ IDEA Community Edition: is partially installed; more components are available. (version 2019.3)
[] Connected device: is fully installed. (1 available)

Run "flutter doctor" for information about installing additional components.

In order to run your application, type:

  $ cd .
  $ flutter run

Your application code is in .\lib\main.dart.


D:\002_Project\002_Android_Learn\flutter_photo>

在这里插入图片描述

然后编译运行 , 成功 ;

在这里插入图片描述

### 解决 Gradle 构建 Flutter 项目时 UnknownPluginException 异常的方法 当遇到 `org.gradle.api.plugins.UnknownPluginException` 异常时,通常是因为插件配置不正确或环境设置有问题。针对此问题,可以采取以下措施: #### 修改 gradle.properties 文件 在项目的根目录下的 `gradle.properties` 文件中添加如下属性: ```properties android.overridePathCheck=true ``` 该属性允许应用程序在访问不在其私有目录下的文件时不进行权限检查[^1]。 #### 检查并修正 Java 环境变量 如果之前安装过其他版本的 JDK 或者修改过系统的 JAVA_HOME 变量,则可能导致当前使用的 JDK 版本与预期不符。建议重新确认并调整 JDK 的环境变量设置,确保指向正确的JDK路径[^4]。 #### 清理缓存和重建索引 有时 IDE 缓存也可能引发此类问题,在 Android Studio 中可以通过菜单栏选择 **File -> Invalidate Caches / Restart...**, 这样会清除所有本地缓存的数据,并重启IDE来尝试解决问题。 #### 更新依赖项 打开 `build.gradle` 文件,检查是否有未定义或拼写错误的插件ID。同时更新所有的库到最新稳定版,特别是那些由第三方提供的组件。 #### 验证项目结构 确保整个工程及其子模块均位于不含特殊字符(如中文)以及合法的操作系统路径之下;因为非法路径可能会引起Gradle解析失败而抛出异常[^2]。 通过上述方法应能有效处理大部分情况下发生的 `UnknownPluginException` 错误。若仍无法解决,请进一步查看具体的堆栈跟踪信息以获取更详细的线索来进行针对性调试。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值