找回密码
 立即注册
查看: 483|回复: 0

[其它] Flutter运行到Android报错You are applying Flutter‘s app_plugin_loader Gradle...

[复制链接]

279

主题

0

回帖

964

积分

超级版主

积分
964
发表于 2024-6-12 12:31:00 | 显示全部楼层 |阅读模式
本帖最后由 Shaw0xyz 于 2024-6-12 12:47 编辑

1. 简介

在Flutter开发中,有时会遇到一些错误,这些错误可能会阻碍应用程序的正常运行。本文将探讨在Flutter运行到Android时遇到的一个常见错误:“You are applying Flutter’s app_plugin_loader Gradle plugin imperatively using…”,并提供解决方案。

1.1 错误背景

在运行Flutter项目时,Gradle可能会报告上述错误,这通常是由于不正确地配置了Gradle插件或版本引起的。理解并解决这个问题有助于确保Flutter应用在Android设备上顺利运行。

2. 错误原因

这个错误通常是由于以下原因引起的:

(1) 在`build.gradle`文件中,手动应用了`app_plugin_loader`插件。
(2) Gradle插件版本与Flutter版本不兼容。
(3) 项目配置文件中的依赖冲突或配置不正确。

3. 解决方案

3.1 检查`build.gradle`文件

首先,确保没有在`build.gradle`文件中手动应用`app_plugin_loader`插件。打开`android/app/build.gradle`文件,检查是否存在类似以下的代码:

apply plugin: 'app_plugin_loader'

如果存在上述代码,删除它。

3.2 更新Gradle插件版本

确保使用与Flutter兼容的Gradle插件版本。打开`android/build.gradle`文件,找到`classpath`配置,并更新为最新版本:

  1. buildscript {
  2.     ext.kotlin_version = '1.5.31'
  3.     repositories {
  4.         google()
  5.         mavenCentral()
  6.     }
  7.     dependencies {
  8.         classpath 'com.android.tools.build:gradle:7.0.3'
  9.         classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
  10.     }
  11. }
复制代码


3.3 同步项目并重建

在进行上述修改后,同步项目并重建。可以在Android Studio中执行以下操作:

(1) 点击“File”菜单,然后选择“Sync Project with Gradle Files”。
(2) 运行`flutter clean`命令以清除项目缓存。
(3) 重新构建项目,运行`flutter build apk`或`flutter run`命令。

4. 示例演示

以下是一个示例项目的`build.gradle`文件配置,确保项目配置正确并与Flutter兼容。

  1. android/build.gradle:

  2. buildscript {
  3.     ext.kotlin_version = '1.5.31'
  4.     repositories {
  5.         google()
  6.         mavenCentral()
  7.     }
  8.     dependencies {
  9.         classpath 'com.android.tools.build:gradle:7.0.3'
  10.         classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
  11.     }
  12. }

  13. allprojects {
  14.     repositories {
  15.         google()
  16.         mavenCentral()
  17.     }
  18. }

  19. android/app/build.gradle:

  20. def localProperties = new Properties()
  21. def localPropertiesFile = rootProject.file('local.properties')
  22. if (localPropertiesFile.exists()) {
  23.     localPropertiesFile.withReader('UTF-8') { reader ->
  24.         localProperties.load(reader)
  25.     }
  26. }

  27. def flutterRoot = localProperties.getProperty('flutter.sdk')
  28. if (flutterRoot == null) {
  29.     throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.")
  30. }

  31. def flutterVersionCode = localProperties.getProperty('flutter.versionCode')
  32. if (flutterVersionCode == null) {
  33.     flutterVersionCode = '1'
  34. }

  35. def flutterVersionName = localProperties.getProperty('flutter.versionName')
  36. if (flutterVersionName == null) {
  37.     flutterVersionName = '1.0'
  38. }

  39. apply plugin: 'com.android.application'
  40. apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"

  41. android {
  42.     compileSdkVersion 31

  43.     sourceSets {
  44.         main.java.srcDirs += 'src/main/kotlin'
  45.     }

  46.     defaultConfig {
  47.         applicationId "com.example.myapp"
  48.         minSdkVersion 21
  49.         targetSdkVersion 31
  50.         versionCode flutterVersionCode.toInteger()
  51.         versionName flutterVersionName
  52.     }

  53.     buildTypes {
  54.         release {
  55.             signingConfig signingConfigs.debug
  56.         }
  57.     }
  58. }
复制代码


5. 结论

通过本文的介绍,读者可以了解如何解决Flutter运行到Android时出现的“You are applying Flutter’s app_plugin_loader Gradle plugin imperatively using...”错误。解决方案包括检查并更新`build.gradle`文件、确保Gradle插件版本兼容以及同步和重建项目。掌握这些技巧可以帮助开发者顺利运行Flutter应用,并提高开发效率。如果在操作过程中遇到其他问题,可以参考Flutter官方文档和社区资源获取更多帮助。



/ 荔枝学姐de课后专栏 /

Hi!这里是荔枝学姐~

欢迎来到我的课后专栏

自然语言学渣 NLP摆烂姐

热衷于技术写作 IT边角料

AIGC & Coding & linux ...

~互撩~ TG: @Shaw_0xyz
荔枝学姐爱吃荔枝!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

联系站长|Archiver|手机版|小黑屋|主机论坛

GMT+8, 2025-4-4 13:45 , Processed in 0.070783 second(s), 24 queries .

Powered by 主机论坛 HostSsss.Com

HostSsss.Com

快速回复 返回顶部 返回列表